SlideShare uma empresa Scribd logo
Angular, VueJs ou React?
Uma migração estratégica.
Getúlio Strapazzon
Front-end Developer
getúlio.strapazzon@socialbase.com.br
OBJETIVO
Um pouco de história
2009
AngularJS
Criado por Misko Hevery e
Adam Abrons
2014
VueJS
Criado por Evan You
2011
React
Criado por Jordam Walke
2016
Angular 2
Lançada em 14 de setembro
2018
Angular 6
Dia 21 março de 2018
6
TypeScript
O TypeScript é um "superset" do javascript, criado
pela Microsoft!
Porque TypeScript?
https://octoverse.github.com/
Tipos de dados mais definidos
Tornando o javascript uma
linguagem tipada.
IDE - VSCode
O VSCode é o projeto
OpenSource no github com
mais colaboradores. Dúvida?
Fortemente orientados à
Objetos
É fortemente influenciado pelo
C# e F#.
JS "Tradicional" com
TypeScript
Nada o impede de usar o JS
tradicional com o TS.
JSX / HTML
Por décadas, os desenvolvedores estavam tentando separar os modelos
de interface do usuário e a lógica JavaScript inline.
Com o JSX, eles são mesclados novamente.
HTML
JSX
Team Skills
Qual a curva de aprendizado para a equipe
atual ?
Testes de integração e unitários ?
Conhecimento em Typescript ?
Novas contratações ?
Benchmark
Qual é a referência?
● Esse benchmark mede a duração de operações simples em
uma tabela com 1.000 ou 10.000 linhas, dependendo da
operação.
● A medição é extraída da linha do tempo do chrome por
meio da automação do navegador e inclui o tempo de
processamento.
BENCHMARK
Este é um benchmark simples para
vários frameworks javascript.
Criam uma tabela grande com
entradas aleatórias e medem o tempo
da renderização.
https://github.com/krausest/js-framework-benchmark/
VíDEO BENCHMARK
BENCHMARK
Framework vs Library
Angular 5
Angular é uma Framework, por que vem com uma forte opinião
de como a aplicação deve ser estruturada também tem mais
recursos para lhe proporcionar um começo tranquilo.
Por outro lado, vem com um confuso conjunto de ferramentas de
construção que são muito úteis.
Muitos arquivos que são gerados pelo CLI o desenvolvedor leva
tempo para entendê los.
Framework vs Library
React & Vue
Por outro lado, são extremamente flexíveis e suas bibliotecas
podem ser combinadas com várias outras facilmente.
Com grande flexibilidade vem grandes responsabilidades, não há
regras limitações ou orientações.
Todo projeto requer decisões sobre arquitetura, bibliotecas
externas ..., e as coisas podem dar errado mais facilmente.
Comparativo
Qual é a referência?
Implementação de projeto básico em cada framework e
analisamos o tempo e dificuldades encontrados.
Projeto
● Ambiente de dev
● Documentação baseado em código
● Testes automatizados
Angular5 VueJS REact+Redux
Curva de Aprendizado Médio > Alto Bom (Baixa) Médio
Preparação do ambiente (DEV) Bom Médio > Alto Médio
Comunicação Client/Serve (Rest Full) Bom Médio Médio
Simplicidade de codificação Médio Bom Médio
Construção de Templates Bom Bom Médio (JSX)
Gerador de Formulários Bom Bom
Ruim
(Redux-Forms)
Carregamento Alto (500KB) Bom (20k) Médio (200k)
Documentação Bom Bom Bom
Angular 5
01 02 03
Start
Possui um CLI que facilita muito o
start do projeto e na padronização
de módulos e componentes.
Forms
Gerador de formulários muito
completo.
Ambiente Dev
Ambiente de desenvolvimento
baseado no WebPack,
configuração automatizada
(CLI).
04 05 06
Testes
Ferramentas de testes: jasmine,
ATU, Karma e Protractor.
Documentação
Ferramenta terceira, Compodoc
gera uma documentação super
completa.
Documentação Oficial
Documentação oficial super
completa.
VueJS
01 02 03
Start
O start é extremamente
simplesmente adicionando a
biblioteca javascript ao código fonte
Forms
Não tem um recurso específico
para isso, é extremamente
simples criar formulários com
HTML e Vue.
Ambiente Dev
Extremamente simples e
flexível, ficando a cargo do dev
quais ferramentas usar.
04 05 06
Testes
Ferramentas de testes: Karma
com Jasmine.
Documentação
Pode ser usado o JSDoc.
Documentação Oficial
Documentação oficial super
completa.
React
01 02 03
Start
O start é extremamente
simplesmente adicionando a
biblioteca javascript ao código fonte
Forms
Não tem um recurso específico
para isso, é extremamente
simples criar formulários com
HTML e Vue.
Ambiente Dev
Extremamente simples e
flexível, ficando a cargo do dev
quais ferramentas usar.
04 05 06
Testes
Ferramentas de testes: Jest,
NIGHTMARE
Documentação
Pode ser usado o JSDoc.
Documentação Oficial
Documentação oficial super
completa.
Consideração final
Optamos pelo Angular 6
1. Tempo / Performance
2. Não depender de bibliotecas externas
3. Ferramentas de testes
4. Documentação baseada em código
5. Padronização do código
6. Fornecer uma estrutura de projeto sólida
7. Conhecimento da equipe em Angular
8. Start extremamente rápido para novos
projetos
Getúlio Strapazzon
frontend engineer
https://www.facebook.com/gstrapazzon
https://www.linkedin.com/in/strapazzon/
https://github.com/Strapazzon

Mais conteúdo relacionado

Mais procurados

UAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsUAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsStefan Teixeira
 
Aplicando Testes Automatizados com Selenium e Azure DevOps - MVPConf LATAM 2019
Aplicando Testes Automatizados com Selenium e Azure DevOps - MVPConf LATAM 2019Aplicando Testes Automatizados com Selenium e Azure DevOps - MVPConf LATAM 2019
Aplicando Testes Automatizados com Selenium e Azure DevOps - MVPConf LATAM 2019Renato Groff
 
Unit Test JavaScript
Unit Test JavaScriptUnit Test JavaScript
Unit Test JavaScriptDan Vitoriano
 
Desenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoDesenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoGuilherme Heynemann Bruzzi
 
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2André Dias
 
Automatizando o teste de aplicações Web com Selenium WebDriver e Azure DevOps...
Automatizando o teste de aplicações Web com Selenium WebDriver e Azure DevOps...Automatizando o teste de aplicações Web com Selenium WebDriver e Azure DevOps...
Automatizando o teste de aplicações Web com Selenium WebDriver e Azure DevOps...Renato Groff
 
Automação de build para frontend
Automação de build para frontendAutomação de build para frontend
Automação de build para frontendVanessa Me Tonini
 
IFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsIFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsLeonardo Comelli
 
ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010Giovanni Bassi
 
Vraptor Overview
Vraptor OverviewVraptor Overview
Vraptor Overviewdtelaroli
 
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariDrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariTaller Negócio Digitais
 
Construindo APIs testáveis com Node.js - RSJS
Construindo APIs testáveis com Node.js - RSJSConstruindo APIs testáveis com Node.js - RSJS
Construindo APIs testáveis com Node.js - RSJSWaldemar Neto
 
TDC2017 | São Paulo - Trilha Android How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha Android How we figured out we had a SRE team at ...TDC2017 | São Paulo - Trilha Android How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha Android How we figured out we had a SRE team at ...tdc-globalcode
 
Uaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - IntroduçãoUaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - IntroduçãoRogerio Fontes
 
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsDevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsJúnior Porfirio
 
Desenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o ForgeDesenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o ForgeEder Magalhães
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front endDouglas Matoso
 
DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014Leo Lorieri
 

Mais procurados (20)

UAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsUAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao Jenkins
 
Aplicando Testes Automatizados com Selenium e Azure DevOps - MVPConf LATAM 2019
Aplicando Testes Automatizados com Selenium e Azure DevOps - MVPConf LATAM 2019Aplicando Testes Automatizados com Selenium e Azure DevOps - MVPConf LATAM 2019
Aplicando Testes Automatizados com Selenium e Azure DevOps - MVPConf LATAM 2019
 
Unit Test JavaScript
Unit Test JavaScriptUnit Test JavaScript
Unit Test JavaScript
 
Desenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoDesenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do código
 
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2
 
Automatizando o teste de aplicações Web com Selenium WebDriver e Azure DevOps...
Automatizando o teste de aplicações Web com Selenium WebDriver e Azure DevOps...Automatizando o teste de aplicações Web com Selenium WebDriver e Azure DevOps...
Automatizando o teste de aplicações Web com Selenium WebDriver e Azure DevOps...
 
Automação de build para frontend
Automação de build para frontendAutomação de build para frontend
Automação de build para frontend
 
IFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsIFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOps
 
ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010
 
Vraptor Overview
Vraptor OverviewVraptor Overview
Vraptor Overview
 
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariDrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
 
Construindo APIs testáveis com Node.js - RSJS
Construindo APIs testáveis com Node.js - RSJSConstruindo APIs testáveis com Node.js - RSJS
Construindo APIs testáveis com Node.js - RSJS
 
TDC2017 | São Paulo - Trilha Android How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha Android How we figured out we had a SRE team at ...TDC2017 | São Paulo - Trilha Android How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha Android How we figured out we had a SRE team at ...
 
Uaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - IntroduçãoUaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - Introdução
 
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsDevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
 
Desenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o ForgeDesenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o Forge
 
Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front end
 
DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014
 

Semelhante a Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )

Angular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoAngular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoGDGFoz
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Rodrigo Branas
 
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...Daniel Makiyama
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1César Augusto Pessôa
 
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 AngularElmano Cavalcanti
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemRodrigo Valerio
 
Introdução JQuery
Introdução JQueryIntrodução JQuery
Introdução JQueryinfo_cimol
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...Renato Groffe
 
RubyConf 17 - Colocando sua aplicação vue nos trilhos
RubyConf 17 - Colocando sua aplicação vue nos trilhosRubyConf 17 - Colocando sua aplicação vue nos trilhos
RubyConf 17 - Colocando sua aplicação vue nos trilhosFelipe Gadelha Ruoso
 
React - Biblioteca Javascript para criação de UI
React - Biblioteca Javascript para criação de UIReact - Biblioteca Javascript para criação de UI
React - Biblioteca Javascript para criação de UICleiton Francisco
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeGlobalcode
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?Douglas Aguiar
 
Javascript levado a serio
Javascript levado a serioJavascript levado a serio
Javascript levado a serioJaydson Gomes
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 
5 frameworks para desenvolvimento de apps em html5
5 frameworks para desenvolvimento de apps em html55 frameworks para desenvolvimento de apps em html5
5 frameworks para desenvolvimento de apps em html5daliarafaela
 
5 frameworks para desenvolvimento de apps em html5
5 frameworks para desenvolvimento de apps em html55 frameworks para desenvolvimento de apps em html5
5 frameworks para desenvolvimento de apps em html5daliarafaela
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...iMasters
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioGeovani Ferreira Gonçalves
 

Semelhante a Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 ) (20)

Angular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoAngular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativo
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
 
Integração Continua - Jenkins
Integração Continua - JenkinsIntegração Continua - Jenkins
Integração Continua - Jenkins
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
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...
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 
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
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
Introdução JQuery
Introdução JQueryIntrodução JQuery
Introdução JQuery
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
 
RubyConf 17 - Colocando sua aplicação vue nos trilhos
RubyConf 17 - Colocando sua aplicação vue nos trilhosRubyConf 17 - Colocando sua aplicação vue nos trilhos
RubyConf 17 - Colocando sua aplicação vue nos trilhos
 
React - Biblioteca Javascript para criação de UI
React - Biblioteca Javascript para criação de UIReact - Biblioteca Javascript para criação de UI
React - Biblioteca Javascript para criação de UI
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto Globalcode
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?
 
Javascript levado a serio
Javascript levado a serioJavascript levado a serio
Javascript levado a serio
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
5 frameworks para desenvolvimento de apps em html5
5 frameworks para desenvolvimento de apps em html55 frameworks para desenvolvimento de apps em html5
5 frameworks para desenvolvimento de apps em html5
 
5 frameworks para desenvolvimento de apps em html5
5 frameworks para desenvolvimento de apps em html55 frameworks para desenvolvimento de apps em html5
5 frameworks para desenvolvimento de apps em html5
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual Studio
 

Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )

  • 1.
  • 2. Angular, VueJs ou React? Uma migração estratégica. Getúlio Strapazzon Front-end Developer getúlio.strapazzon@socialbase.com.br
  • 3.
  • 5. Um pouco de história 2009 AngularJS Criado por Misko Hevery e Adam Abrons
  • 6. 2014 VueJS Criado por Evan You 2011 React Criado por Jordam Walke
  • 7. 2016 Angular 2 Lançada em 14 de setembro 2018 Angular 6 Dia 21 março de 2018 6
  • 8. TypeScript O TypeScript é um "superset" do javascript, criado pela Microsoft!
  • 9. Porque TypeScript? https://octoverse.github.com/ Tipos de dados mais definidos Tornando o javascript uma linguagem tipada. IDE - VSCode O VSCode é o projeto OpenSource no github com mais colaboradores. Dúvida? Fortemente orientados à Objetos É fortemente influenciado pelo C# e F#. JS "Tradicional" com TypeScript Nada o impede de usar o JS tradicional com o TS.
  • 10. JSX / HTML Por décadas, os desenvolvedores estavam tentando separar os modelos de interface do usuário e a lógica JavaScript inline. Com o JSX, eles são mesclados novamente.
  • 11. HTML
  • 12. JSX
  • 13. Team Skills Qual a curva de aprendizado para a equipe atual ? Testes de integração e unitários ? Conhecimento em Typescript ? Novas contratações ?
  • 14. Benchmark Qual é a referência? ● Esse benchmark mede a duração de operações simples em uma tabela com 1.000 ou 10.000 linhas, dependendo da operação. ● A medição é extraída da linha do tempo do chrome por meio da automação do navegador e inclui o tempo de processamento.
  • 15. BENCHMARK Este é um benchmark simples para vários frameworks javascript. Criam uma tabela grande com entradas aleatórias e medem o tempo da renderização. https://github.com/krausest/js-framework-benchmark/
  • 18. Framework vs Library Angular 5 Angular é uma Framework, por que vem com uma forte opinião de como a aplicação deve ser estruturada também tem mais recursos para lhe proporcionar um começo tranquilo. Por outro lado, vem com um confuso conjunto de ferramentas de construção que são muito úteis. Muitos arquivos que são gerados pelo CLI o desenvolvedor leva tempo para entendê los.
  • 19. Framework vs Library React & Vue Por outro lado, são extremamente flexíveis e suas bibliotecas podem ser combinadas com várias outras facilmente. Com grande flexibilidade vem grandes responsabilidades, não há regras limitações ou orientações. Todo projeto requer decisões sobre arquitetura, bibliotecas externas ..., e as coisas podem dar errado mais facilmente.
  • 20. Comparativo Qual é a referência? Implementação de projeto básico em cada framework e analisamos o tempo e dificuldades encontrados. Projeto ● Ambiente de dev ● Documentação baseado em código ● Testes automatizados
  • 21. Angular5 VueJS REact+Redux Curva de Aprendizado Médio > Alto Bom (Baixa) Médio Preparação do ambiente (DEV) Bom Médio > Alto Médio Comunicação Client/Serve (Rest Full) Bom Médio Médio Simplicidade de codificação Médio Bom Médio Construção de Templates Bom Bom Médio (JSX) Gerador de Formulários Bom Bom Ruim (Redux-Forms) Carregamento Alto (500KB) Bom (20k) Médio (200k) Documentação Bom Bom Bom
  • 22. Angular 5 01 02 03 Start Possui um CLI que facilita muito o start do projeto e na padronização de módulos e componentes. Forms Gerador de formulários muito completo. Ambiente Dev Ambiente de desenvolvimento baseado no WebPack, configuração automatizada (CLI). 04 05 06 Testes Ferramentas de testes: jasmine, ATU, Karma e Protractor. Documentação Ferramenta terceira, Compodoc gera uma documentação super completa. Documentação Oficial Documentação oficial super completa.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27. VueJS 01 02 03 Start O start é extremamente simplesmente adicionando a biblioteca javascript ao código fonte Forms Não tem um recurso específico para isso, é extremamente simples criar formulários com HTML e Vue. Ambiente Dev Extremamente simples e flexível, ficando a cargo do dev quais ferramentas usar. 04 05 06 Testes Ferramentas de testes: Karma com Jasmine. Documentação Pode ser usado o JSDoc. Documentação Oficial Documentação oficial super completa.
  • 28. React 01 02 03 Start O start é extremamente simplesmente adicionando a biblioteca javascript ao código fonte Forms Não tem um recurso específico para isso, é extremamente simples criar formulários com HTML e Vue. Ambiente Dev Extremamente simples e flexível, ficando a cargo do dev quais ferramentas usar. 04 05 06 Testes Ferramentas de testes: Jest, NIGHTMARE Documentação Pode ser usado o JSDoc. Documentação Oficial Documentação oficial super completa.
  • 29. Consideração final Optamos pelo Angular 6 1. Tempo / Performance 2. Não depender de bibliotecas externas 3. Ferramentas de testes 4. Documentação baseada em código 5. Padronização do código 6. Fornecer uma estrutura de projeto sólida 7. Conhecimento da equipe em Angular 8. Start extremamente rápido para novos projetos