SlideShare uma empresa Scribd logo
1 de 217
Angular 2
Loiane Groner
github.com/loiane
loiane.com
loiane.training
@loiane
• 10+ XP TI
• Java, JavaScript, Sencha, Angular
Phonegap/Ionic
• Blog: http://loiane.com
• Cursos: http://loiane.training
• Meus livros:
!==
TYPESCRIPT
TypeScript
ECMAScript 6
ECMAScript 5
ES 2015
Novembro 2009
meu-script.ts
transpiler
meu-script.js
ES5
Classes e Módulos
ECMAScript 7
ES 2016
Decorators e Async
Tipagem de dados, interfaces
O QUE PRECISAMOS INSTALAR
https://nodejs.org
TYPESCRIPT
https://www.typescriptlang.org/
TYPESCRIPT
$ npm install -g typescript
$ sudo npm install -g typescript
SOMENTE MAC OU LINUX
> npm install -g angular-cli
> ng new meu-projeto
> cd meu-projeto
> ng serve
> ng build
> ng test
> ng e2e
> ng deploy
Editores/ IDEs
COMPONENTES DIRETIVAS
ROTEAMENTOSERVIÇOS
TEMPLATE
DATA BINDINGINJEÇÃO
DEPENDÊNCIA
MÓDULOS
Blocos Principais
COMPONENTE
{…}
TEMPLATE
<..>
COMPONENTE
{…}
TEMPLATE
<..>
Binding de
Propriedades
COMPONENTE
{…}
TEMPLATE
<..>
Binding de
Propriedades
Binding de
Eventos
COMPONENTE
{…}
TEMPLATE
<..>
DIRETIVAS
{..}
Binding de
Propriedades
Binding de
Eventos
COMPONENTE
{…}
TEMPLATE
<..>
DIRETIVAS
{..}
SERVIÇOS
SERVIÇO A
SERVIÇO B
Binding de
Propriedades
Binding de
Eventos
COMPONENTE
{…}
TEMPLATE
<..>
DIRETIVAS
{..}
SERVIÇOS
SERVIÇO A
SERVIÇO B MÓDULO X
MÓDULO A
MÓDULO B
Binding de
Propriedades
Binding de
Eventos
Módulos
Imports das classes
Declaração dos
Components, Directives, Pipes que
queremos usar no projeto
Declaração dos
Components, Directives, Pipes que
queremos usar no projeto
Import dos Módulos que
serão usados por esse módulo
Declaração dos
Components, Directives, Pipes que
queremos usar no projeto
Import dos Módulos que
serão usados por esse módulo
Componente principal
da aplicação
Também podemos ter
módulo de funcionalidade
pra ajudar a organizar o
projeto
Também podemos ter
módulo de funcionalidade
pra ajudar a organizar o
projeto
Fornecedores de serviços
Admin
Usuários
Permissões
Shared/Common
Validações
Pipes
Produtos
ProdutosPainel
ProdutoLista
ProdutoDetalhe
ProdutoForm
Clientes
ClientesPainel
ClienteLista
ClienteDetalhe
ClienteForm
Vendas
VendasPainel
VendaLista
VendaDetalhe
VendaForm
VendaProdutosForm
Relatórios
RelatorioPrincipal
RelatorioClientes
RelatorioBuscaClientes
RelatorioProdutos
RelatorioBuscaProdutos
RelatorioVendas
RelatorioBuscaVendas
ExportarExcel
ExportarPDF
Raiz
AppComponent
NavBar
Menu
Componentes
Passo 1: Criar e Declarar Componente
Passo 1: Criar e Declarar Componente
Passo 1: Criar e Declarar Componente
Passo 1: Criar e Declarar Componente
Nome da tag a ser
utilizada
Passo 2: Importar e Declarar no módulo (e exportar caso queira
expor a outros módulos
Passo 3: Usar a tag do Componente criado
Passo 3: Usar a tag do Componente criado
Templates
Template contém o HTML que será renderizado
Pode ser declarado inline (no próprio componente)
Pode ser declarado inline (no próprio componente)
Ou num arquivo separado
Ou num arquivo separado
Estilizando componentes/
templates
Data
Binding
DATA BINDING
<TEMPLATE>
{COMPONENT}
DATA BINDING
<TEMPLATE>
{COMPONENT}
{{ valor }}
DATA BINDING
<TEMPLATE>
{COMPONENT}
{{ valor }}
[propriedade]="valor"
DATA BINDING
<TEMPLATE>
{COMPONENT}
{{ valor }}
[propriedade]="valor"
(evento)="handler"
DATA BINDING
<TEMPLATE>
{COMPONENT}
{{ valor }}
[propriedade]="valor"
(evento)="handler"
[(ngModel)]="propriedade"
#1: Interpolação
#1: Interpolação
#1: Interpolação
#2: Binding de propriedades (property binding)
#2: Binding de propriedades (property binding)
Todas as imagens tem o
mesmo resultado
#3: Class binding (também é property binding)
#3: Class binding (também é property binding)
Variável local
chamada class
#3: Class binding (também é property binding)
Variável local
chamada class
Property binding
#4: Style binding (também é property binding)
#4: Style binding (também é property binding)
Mostra o estilo
ou não?
#4: Style binding (também é property binding)
Mostra o estilo
ou não?
Expressão com o
valor da variável
#5: Event binding (binding de evento)
#5: Event binding (binding de evento)
Evento a ser
"escutado"
#5: Event binding (binding de evento)
Evento a ser
"escutado"
Método/Função a
ser executada
#5: Event binding (binding de evento)
Evento a ser
"escutado"
Método/Função a
ser executada
#5: Event binding (binding de evento)
Evento a ser
"escutado"
Método/Função a
ser executada
Como manter o template e o
componente atualizados?
Como manter o template e o
componente atualizados?
Como manter o template e o
componente atualizados?
Como manter o template e o
componente atualizados?
Property binding +
event binding
Como manter o template e o
componente atualizados?
#6: Binding de Model (two-way data-binding)
#6: Binding de Model (two-way data-binding)
#6: Binding de Model (two-way data-binding)
Two-way
data binding com
NgModel
Diretivas
TEXT
TIPOS DE DIRETIVAS
DIRETIVAS ESTRUTURAIS
Interagem com a view e
modificam a estrutura do DOM
e/ou código HTML
*ngFor
*ngIf
TEXT
TIPOS DE DIRETIVAS
DIRETIVAS ESTRUTURAIS
Interagem com a view e
modificam a estrutura do DOM
e/ou código HTML
*ngFor
*ngIf
DIRETIVAS DE ATRIBUTOS
Interagem com o elemento em
que foram aplicadas
ng-class
ng-style
Condicional If: JavaScript
Diretiva *ngIf
Loop for: JavaScript
Diretiva *ngFor
Property binding de classe
Diretiva ngClass
Criando uma diretiva customizada
Usando a diretiva
E como os componentes se comunicam?
Componente parente <-> filho?
Comunicação parente -> filho através de @Input()
Comunicação parente -> Filho através de @Input()
Comunicação parente -> Filho através de @Input()
2 - Usamos a anotação @Input nos atributos que
queremos expor
Comunicação filho -> parente através de @Output()
Comunicação filho -> parente através de @Output()
Emitimos o evento
"clicked"
Com @Output podemos escutar eventos customizados
Com @Output podemos escutar eventos customizados
Serviços
Passo 1: Criar uma classe com métodos!
Passo 1: Criar uma classe com métodos!
Injeção de
Dependência
Passo 2: Decorar a classe
Passo 2: Decorar a classe
Importar
Passo 3: Importar e registrar como
fornecedor de dados no módulo
Passo 3: Importar e registrar como
fornecedor de dados no módulo
Importar
Passo 4: Importar e passar o serviço para o construtor da classe
Passo 4: Importar e passar o serviço para o construtor da classe
Importar
Passo 1: Importar e Injetar na classe (serviço)
Passo 1: Importar e Injetar na classe (serviço)
Importar
Não esquecer de ter o módulo Http importado no módulo
também
Não esquecer de ter o módulo Http importado no módulo
também
Importar o
módulo
Só usar os métodos get, post, put e delete!
Exemplo CRUD com REST
Upload Arquivo
https://github.com/angular/http/issues/75
Por enquanto: upload de arquivo "na mão"
Coisa linda!
Coisa linda!
fluxos:
.do
.map
.filter
.when
.add
Coisa linda!
fluxos:
.do
.map
.filter
.when
.add
Programação reativa!
No componente é só se inscrever no Observador (Observable)
LIFE CYCLE HOOKS
# EVENTO (HOOKS) QUANDO?
ngOnChanges1 antes #2 e quando valor property-binding é atualizado
LIFE CYCLE HOOKS
# EVENTO (HOOKS) QUANDO?
ngOnChanges1 antes #2 e quando valor property-binding é atualizado
ngOnInit2 quando Component é inicializado
LIFE CYCLE HOOKS
# EVENTO (HOOKS) QUANDO?
ngOnChanges1 antes #2 e quando valor property-binding é atualizado
ngOnInit2 quando Component é inicializado
ngDoCheck3 a cada ciclo de verificação de mudanças
ngAfterContentInit4 depois de inserir conteúdo externo na view
ngAfterContentChecked5 a cada verificação de conteúdo inserido
ngAfterViewChecked6 a cada verificação de conteúdo / conteúdo filho
LIFE CYCLE HOOKS
# EVENTO (HOOKS) QUANDO?
ngOnChanges1 antes #2 e quando valor property-binding é atualizado
ngOnInit2 quando Component é inicializado
ngDoCheck3 a cada ciclo de verificação de mudanças
ngAfterContentInit4 depois de inserir conteúdo externo na view
ngAfterContentChecked5 a cada verificação de conteúdo inserido
ngAfterViewChecked6 a cada verificação de conteúdo / conteúdo filho
ngOnDestroy7 antes da diretiva/component ser destruído
Roteamento
Passo 1: app.routing.ts
Passo 1: app.routing.ts
Passo 1: app.routing.ts
Passo 1: app.routing.ts
Passo 2: importar arquivo no app.module e declarar nos imports
Importar as rotas
Passo 3: Adicionar o router-outlet no seu componente principal
Passo 4: Adicionar os links de roteamento na aplicação
Organizando as
rotas do projeto
Módulo Usuários: criar arquivo users.routing.ts
(também não esquecer de importar no app.module.ts
Pode passar parâmetro pra rota também!
E pra obter o parâmetro da rota:
E pra obter o parâmetro da rota:
Não esquecer de importar e injetar no construtor
Rotas filhas
Passo 1: Declarar rota parente e rotas filhas
Passo 1: Declarar rota parente e rotas filhas
Passo 2: no componente parente também é
preciso de declarar o router-outlet
Passo 2: no componente parente também é
preciso de declarar o router-outlet
Guards:
canActivate
canDeactivate
Passo 1: Adicionar a guarda na rota
Passo 1: Adicionar a guarda na rota
Passo 2: criar um serviço com a lógica (usuário logado, etc)
Passo 2: criar um serviço com a lógica (usuário logado, etc)
Passo 2: criar um serviço com a lógica (usuário logado, etc)
Passo 2: criar um serviço com a lógica (usuário logado, etc)
Passo 3: declarar o serviço guarda como provider no módulo
Passo 3: declarar o serviço guarda como provider no módulo
Passo 1: criar serviço de guarda
Passo 2: implementar a lógica
No desativamento da rota, verificar se tem mudanças no formulário.
Passo 3: adicionar guarda na rota
Passo 3: adicionar guarda na rota
e tem mais!
Pipes
Decortator @Pipe
Pra usar: | nomeDoPipe
Formulários
2 TIPOS NO ANGULAR 2
•Data-driven (Formulário reativo)
•Lógica de validação no Component
•Template driven
•Lógica de validação no form
Template-driven
Template-driven
Template-driven
Template-driven
Super hiper mega
importante!
Template-driven
Template-driven
Template-driven
Template-driven
Template-driven
Template-driven
Template-driven
Template-driven
Super hiper mega
importante!
Variável
local referenciando o campo
pra validação
Template-driven
Template-driven
Data-driven
Data-driven
Data-driven
Super hiper mega
importante #1
Data-driven
Data-driven
Data-driven
Super hiper mega
importante #2
Data-driven
Data-driven
Data-driven
Data-driven
Data-driven: submit: já temos o form!
Data-driven: validação customizada
> npm install -g angular-cli
> ng new meu-projeto
> cd meu-projeto
> ng serve
ANGULAR CLI: CRIANDO COMPONENTS
> cd NomeProjeto
> ng generate component meu-primeiro
> ng g component meu-primeiro
ANGULAR CLI: CRIANDO COMPONENTS
Convenção de nomenclatura
meu-primeiro.component.ts
Palavras separadas por “-“
Ponto
“component" -> para indicar que é um componente
Ponto
ts -> extensão typescript
Convenção de nomenclatura
export class MeuPrimeiroComponent {}
meu-primeiro.component.ts
Convenção de nomenclatura
export class MeuPrimeiroComponent {}
meu-primeiro.component.ts
O mesmo se aplica a service.ts,
pipe.ts, directive.ts, etc
Dicas
Projetos
Grandes
Lazy loading +
módulos
Roteamento:
loadChildren
Roteamento:
loadChildren
Carrega a aplicação
Carrega o módulo
Ahead of Time
Compilation
DESENVOLVIMENTO DO PROJETO COM ANGULAR 2 + TYPESCRIPT
COMPILAÇÃO DA APLICAÇÃO COM TSC (COMPILADOR TS)
BUNDLING (TUDO EM UM ARQUIVO APENAS)
MINIFICAÇÃO
DEPLOY
Compilação "normal"
DOWNLOAD DE TODOS OS ARQUIVOS JAVASCRIPT
BOOTSTRAP DO ANGULAR 2
COMPILAÇÃO EM TEMPO REAL
APLICAÇÃO É RENDERIZADA
DESENVOLVIMENTO DO PROJETO COM ANGULAR 2 + TYPESCRIPT
COMPILAÇÃO DA APLICAÇÃO COM NGC (ANGULAR2 COMPILER)
BUNDLING (TUDO EM UM ARQUIVO APENAS)
MINIFICAÇÃO
DEPLOY
COMPILAÇÃO DO PROJETO E TEMPLATES PARA TS
COMPILAÇÃO DO PROJETO DE TS PARA JS
Compilação aot
DOWNLOAD DE TODOS OS ARQUIVOS JAVASCRIPT
BOOTSTRAP DO ANGULAR 2
APLICAÇÃO É RENDERIZADA
ANGULAR CLI: NG SERVE OU BUILD —AOT
> cd NomeProjeto
> ng serve —-aot
> ng build —-aot
Juntando tudo!
Demo
•https://github.com/loiane/curso-angular2
•https://github.com/loiane/angular2-pokedex
•https://github.com/loiane/angular2-crud-rest
•https://github.com/loiane/angular2-crud-auth-routing
http://loiane.training
Curso Gratuito!
http://loiane.com
facebook.com/loianegroner
twitter.com/loiane
https://github.com/loiane
youtube.com/loianegroner
http://loiane.training

Mais conteúdo relacionado

Mais procurados

DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
 

Mais procurados (20)

Arquitetura Node com NestJS
Arquitetura Node com NestJSArquitetura Node com NestJS
Arquitetura Node com NestJS
 
CSS Grid vs. Flexbox
CSS Grid vs. FlexboxCSS Grid vs. Flexbox
CSS Grid vs. Flexbox
 
Angular Best Practices - Perfomatix
Angular Best Practices - PerfomatixAngular Best Practices - Perfomatix
Angular Best Practices - Perfomatix
 
LetsSwift(강민규스피커,안정민서포터).pptx
LetsSwift(강민규스피커,안정민서포터).pptxLetsSwift(강민규스피커,안정민서포터).pptx
LetsSwift(강민규스피커,안정민서포터).pptx
 
Nestjs MasterClass Slides
Nestjs MasterClass SlidesNestjs MasterClass Slides
Nestjs MasterClass Slides
 
Introduction to Bootstrap: Design for Developers
Introduction to Bootstrap: Design for DevelopersIntroduction to Bootstrap: Design for Developers
Introduction to Bootstrap: Design for Developers
 
NestJS - O framework progressivo
NestJS - O framework progressivoNestJS - O framework progressivo
NestJS - O framework progressivo
 
Angular - Chapter 7 - HTTP Services
Angular - Chapter 7 - HTTP ServicesAngular - Chapter 7 - HTTP Services
Angular - Chapter 7 - HTTP Services
 
SASS - Syntactically Awesome Stylesheet
SASS - Syntactically Awesome StylesheetSASS - Syntactically Awesome Stylesheet
SASS - Syntactically Awesome Stylesheet
 
Continuous DB Changes Delivery With Liquibase
Continuous DB Changes Delivery With LiquibaseContinuous DB Changes Delivery With Liquibase
Continuous DB Changes Delivery With Liquibase
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
Solucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.ioSolucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.io
 
React js
React js React js
React js
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
 
DevSecOps Basics with Azure Pipelines
DevSecOps Basics with Azure Pipelines DevSecOps Basics with Azure Pipelines
DevSecOps Basics with Azure Pipelines
 
Google flutter the easy and practical way IEEE Alazhar
Google flutter the easy and practical way IEEE AlazharGoogle flutter the easy and practical way IEEE Alazhar
Google flutter the easy and practical way IEEE Alazhar
 
Web components
Web componentsWeb components
Web components
 
Nuxt.JS Introdruction
Nuxt.JS IntrodructionNuxt.JS Introdruction
Nuxt.JS Introdruction
 
CSS Dasar #9 : Inheritance
CSS Dasar #9 : InheritanceCSS Dasar #9 : Inheritance
CSS Dasar #9 : Inheritance
 
Knative로 서버리스 워크로드 구현
Knative로 서버리스 워크로드 구현Knative로 서버리스 워크로드 구현
Knative로 서버리스 워크로드 구현
 

Destaque

[Curso Java Basico] Exercicios Aula 24
[Curso Java Basico] Exercicios Aula 24[Curso Java Basico] Exercicios Aula 24
[Curso Java Basico] Exercicios Aula 24
Loiane Groner
 

Destaque (16)

Angular 2 overview in 60 minutes
Angular 2 overview in 60 minutesAngular 2 overview in 60 minutes
Angular 2 overview in 60 minutes
 
Campus Party Brasil 2017: Angular 2 #cpbr10
Campus Party Brasil 2017: Angular 2 #cpbr10Campus Party Brasil 2017: Angular 2 #cpbr10
Campus Party Brasil 2017: Angular 2 #cpbr10
 
Introducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na praticaIntroducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na pratica
 
Tutorial do app e o divulgador
Tutorial do app e o divulgadorTutorial do app e o divulgador
Tutorial do app e o divulgador
 
DevFest BH: Ionic 2
DevFest BH: Ionic 2DevFest BH: Ionic 2
DevFest BH: Ionic 2
 
Ionic 2 na pratica!
Ionic 2 na pratica!Ionic 2 na pratica!
Ionic 2 na pratica!
 
DevFest Nordeste: Ionic 2
DevFest Nordeste: Ionic 2DevFest Nordeste: Ionic 2
DevFest Nordeste: Ionic 2
 
Mobile Summit Brazil: Ionic 2
Mobile Summit Brazil: Ionic 2Mobile Summit Brazil: Ionic 2
Mobile Summit Brazil: Ionic 2
 
Angular 2
Angular 2Angular 2
Angular 2
 
TDC SP 2016: Ionic 2
TDC SP 2016: Ionic 2TDC SP 2016: Ionic 2
TDC SP 2016: Ionic 2
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
 
Open Source Mobile Experience: Ionic 2
Open Source Mobile Experience: Ionic 2Open Source Mobile Experience: Ionic 2
Open Source Mobile Experience: Ionic 2
 
[Curso Java Basico] Exercicios Aula 24
[Curso Java Basico] Exercicios Aula 24[Curso Java Basico] Exercicios Aula 24
[Curso Java Basico] Exercicios Aula 24
 
Curso Java Básico Aula 01: Introdução e Dicas para quem está Começando
Curso Java Básico Aula 01: Introdução e Dicas para quem está ComeçandoCurso Java Básico Aula 01: Introdução e Dicas para quem está Começando
Curso Java Básico Aula 01: Introdução e Dicas para quem está Começando
 
Oficina App Inventor
Oficina App InventorOficina App Inventor
Oficina App Inventor
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 

Semelhante a Devfest Cerrado: Angular 2

Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Allyson Barros
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
elliando dias
 

Semelhante a Devfest Cerrado: Angular 2 (20)

Ionic 2/3 + Firebase
Ionic 2/3 + FirebaseIonic 2/3 + Firebase
Ionic 2/3 + Firebase
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e Além
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Desenvolvendo com Angular CLI
Desenvolvendo com Angular CLIDesenvolvendo com Angular CLI
Desenvolvendo com Angular CLI
 
Python 08
Python 08Python 08
Python 08
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Django Módulo Básico Parte II
Django Módulo Básico Parte IIDjango Módulo Básico Parte II
Django Módulo Básico Parte II
 
Selenium - WebDriver
Selenium - WebDriverSelenium - WebDriver
Selenium - WebDriver
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutos
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-end
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
Cucumber-QA_Night
Cucumber-QA_NightCucumber-QA_Night
Cucumber-QA_Night
 
Machine Learning: Do Notebook ao modelo em produção
Machine Learning: Do Notebook ao modelo em produçãoMachine Learning: Do Notebook ao modelo em produção
Machine Learning: Do Notebook ao modelo em produção
 
Cucumber
CucumberCucumber
Cucumber
 
Cake Php
Cake PhpCake Php
Cake Php
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Devfest Cerrado: Angular 2