SlideShare uma empresa Scribd logo
1 de 119
Baixar para ler offline
do jQuery aos microfrontends:
os desafios de
manter uma
aplicação web.
Antes de
tudo, uma
história real.
Desenvolver componente de
autocomplete
Created 30 min ago
<input id="autocomplete" placeholder="Busque..." />
<script src="autocomplete.js"></script>
<script>
autocomplete("#autocomplete", {})
</script>
Hoisting em JavaScript é o que
acontece quando funções e
variáveis são elevadas ao topo de
um escopo.
@fernahh
fernahh.com
ContaAzul
contaazul.com/vagas
Plataforma de
gestão empresarial
A empresa foi fundada em
2012. O objetivo é dar tempo
ao micro e pequeno
empresário para focar no
que interessa: seu negócio.
Nosso tamanho
350+ funcionários
4.000+ escritórios contábeis
parceiros
1.000.000+ empresas já
começaram a usar
Nossas
primeiras
tecnologias.
Apresentação
Negócio
Dados
Apresentação
Negócio
Dados
Tudo em um mesmo
servidor, como a maioria
das aplicações da época.
Camada de
apresentação.
● O HTML era gerado no servidor,
prática comum para a época.
● A camada de estilo era escrita com
Less para facilitar a criação de
temas.
● O comportamento era feito com
JavaScript puro e bibliotecas como a
clássica jQuery.
Interfaces web são assíncronas,
onde temos dois agentes de
mudança: usuário e servidor.
Nome
Categoria
Cadastro de Produto
Salvar
Nome
Categoria
Cadastro de Produto
Salvar
1. $.keyup()
2. $.addClass()
3. $.removeClass()
Nome
Categoria
Cadastro de Produto
Salvar
1. $.click()
2. $.get()
3. $.appendTo()
Nome
Categoria
Cadastro de Produto
Salvar
1. $.click()
2. $.post()
3. $(location).attr()
Por vários anos, o paradigma
orientado a eventos reinou sobre o
desenvolvimento web.
Aprendemos que o DOM é lento, e
escrever código performático na
maioria das vezes prejudica a
legibilidade.
Mesmo quando JavaScript era
usado apenas para “validar
formulários”, a chance dele se
tornar um caos era muito grande.
AMD como sistema de
módulos
good parts
AMD como
sistema de
módulos.
● Tinha uma ótima comunidade de
apoio em torno da principal
implementação: RequireJS.
● Bibliotecas como jQuery e Lodash
faziam uso da implementação.
● Evita que o usuário baixe script
desnecessário.
bad parts
AMD como
sistema de
módulos.
● “Esconde” tamanho da aplicação.
● Bibliotecas que não dão suporte ao
padrão dificultam o uso.
● Após chegada dos ES Modules, ficou
custoso reescrever tudo.
Enquanto isso o mercado estava
cada vez mais desenvolvendo
aplicações com tecnologias web.
Ter apenas um software “na
nuvem” já não era mais um
diferencial.
Requisitos
universais de
uma aplicação
web.
Atrativa
Simples de usar
Acessível
Rápida
Atrativa
Simples de usar
Acessível
Rápida
Design
Usabilidade
Acessibilidade
Performance
Design e
usabilidade.
● Corrigindo metade das falhas de
uma interface já no início, pode
render melhorias de até 700%. (Gilb,
1998)
● Se um sistema for lançado com
falhas, as correções podem custar
100 vezes mais do que o período de
desenvolvimento. (Laundauer, 1995)
- https://www.nngroup.com/articles/return-on-investment-for-usability/
- https://www.nngroup.com/articles/usability-roi-declining-but-still-strong/
“Why does one choose to use
Gmail over Yahoo, Medium over
Blogger, if the feature are 99% the
same? ...
https://uxdesign.cc/ux-trends-2017-46a63399e3d2
…It’s definitely not about
disrupting usability standards. It’s
about that additional layer of
sophistication (...) of tiniest details,
the most subtle animations, the
most elegant transitions.”
https://uxdesign.cc/ux-trends-2017-46a63399e3d2
Acessibilidade
e performance.
● Há 20,5 milhões de idosos e 45,6
milhões de brasileiros com algum
tipo de deficiência. (Censo de 2010)
● A BBC descobriu que eles perdem
10% mais usuários a cada segundo
adicional no carregamento de seu
site. (Jeremy Wagner, 2018)
“Improving performance should
not be seen solely as a means of
advancing ourselves, but also as
ethically responsible behavior.”
Jeremy Wagner
https://developers.google.com/web/fundamentals/performance/why-performance-matters/
As limitações
da web como
plataforma.
Apresentação
Negócio
Dados
“We are basically hacking
Microsoft Word to run apps.”
@ken_wheeler
http://coldfront.surge.sh/
Apesar de ser a maior plataforma de
desenvolvimento de software, o
browser possui sérias limitações.
APIs são inconsistentes
Para cada web API existem inúmeras
bibliotecas de abstração.
Manter estado é um desafio
O estado em uma aplicação web precisa
estar em sincronia com a URL do usuário.
Instabilidade de conexão
A conexão dos usuários é lenta,
totalmente instável e heterogênea.
Front-end não é fácil
Não é a toa que existem inúmeras
tentativas de não escrever HTML, CSS e
Javascript.
Reescrever aplicações quase
nunca é uma boa ideia.
Especificação
Ao longo do tempo muitas melhorias e
correções são desenvolvidas, e nunca são
documentadas.
Custo
Uma aplicação de tamanho médio, vai
levar no mínimo ~6 meses para ficar
pronta.
http://www.ben-morris.com/why-refactoring-code-is-almost-always-better-than-rewriting-it/
O advento das
ferramentas
JavaScript.
HTML
HTML
CSS
HTML
CSS
JavaScript
JavaScript
CSS
HTML
Além de comportamento, hoje o
JavaScript atua na entrega de
conteúdo, faz build também é
responsável pelo estilo.
JavaScript é, indiscutivelmente, a
linguagem mais importe da década.
JavaScript é, indiscutivelmente, a
linguagem mais importe da década.
Backbone
Angular
Ember
React
Vue
Data Binding e
MV* Frameworks
foram boas ideias...
Data Binding
Permite que possamos conectar
mudanças de um modelo para a UI.
API
Model
Template
Merge View
JSON
JavaScript
Linguagem
de template
HTML
Two-way Data Binding
Além do fluxo do modelo para a UI, nessa
abordagem a UI também faz atualizações
no modelo.
API Model
View
JSON JavaScript
HTML
Template
Linguagem
de template
Compile
API Model
View
JSON JavaScript
HTML
Template
Linguagem
de template
Compile
“seria o fim dos
callbacks?”
AngularJS como framework
front-end
good parts
AngularJS
como
framework
front-end
● A comunidade em torno do
framework cresceu e se tornou a
maior da época.
● Rápido para prototipar ideias e
desenvolver experimentos.
● Prioriza a separação de camadas
entre HTML e JavaScript.
bad parts
AngularJS
como
framework
front-end
● Two-way binding facilmente se
torna um rio de side effects.
● Dependency Injection se tornou
burocrático após ES Modules.
● Problemas de performance
aparecem em pouco tempo de uso.
Side effects
O código é difícil de testar, o que se
resulta em medo de fazer refactoring e
corrigir bugs.
Código duplicado
No modelo MVC tudo é orientado a view.
Filters e diretivas não são muito
amigáveis com perfomance.
Depreciação e código legado
É difícil usar “novas” features do
JavaScript e a atualização de bibliotecas
se tornam caras de implementar.
Jornada em
busca de
produtividade.
Paradigmas baseados em
componentes ganharam mercado.
Abstração
Salvar
Possibilidades de uso
● Receber um texto
● Receber um ícone
● Disparar uma ação
R$ 100 Salvar
Possibilidades de uso
● Receber um texto
● Receber um ícone
● Disparar uma ação
R$ 100 Salvar
Possibilidades de uso
● Receber um texto
● Receber um ícone
● Disparar uma ação
● Receber um totalizador (????)
updateTotal()
Salvar
<ca-button
data-text="Salvar"
data-action="save()"/>
Salvar
<ca-totals
data-value="total"/>
Total: R$ 100
<ca-button
data-text="Salvar"
data-action="save()"/>
“Ao abstrair tornar mais
polimórfico, você está restringindo
o espaço de implementação,
diminuindo a possibilidade de
erros.”
@rodrigowillrich
Facilidade para
testar
Testes end-to-end
São difíceis de manter em grande escala,
mas numa lib de componentes talvez faça
sentido.
good parts
Testes
end-to-end
● Faz sentido quando você quer testar
uma biblioteca de componentes ao
invés do sistema todo.
● Podem pegar erros que são difíceis
de testar de forma unitária.
bad parts
Testes
end-to-end
● São difíceis de manter quando se
tem muitas telas.
● Podem se tornar lento e custando
caro para o processo de CI/CD.
● A certeza que irá pegar todos os
bugs não é garantida.
Reuso de
código
Possibilidade de pensar no
WOW!
Criamos uma biblioteca de
componentes “vanilla”
good parts
Componentes
Vanilla
● Ter o CSS em folhas de estilo
facilitam o uso entre tecnologias
diferentes.
● Apenas instanciar um objeto
padroniza comportamentos.
bad parts
Componentes
Vanilla
● Código performático != código
legível.
● Muitas libs já são escritas diretas nos
frameworks.
● Complexo para escrever testes
unitários.
O que fazer com o código legado?
Como
sobreviver sem
reescrever tudo.
Dor
Recurso
Soluções
Continuidade
Dor
Recurso
Soluções
Continuidade
Antes de tudo, é preciso saber onde
estão as dores do time.
Débitos técnicos
Significam o custo implícito por uma
escolha mais “fácil e rápida”.
Se a dívida não for paga, ela pode cobrar
juros.
Débitos
técnicos.
● Ajudam a quantificar e ter uma visão
de quanto o time está investindo em
soluções paliativas.
● Servem como documentação do
histórico de implementações
pobres.
O Santo Graal da arquitetura de
software não existe.
O que ouvimos falar são as
histórias que deram certo.
Ninguém conta as cagadas que
acontecem no dia-a-dia das
empresas.
https://engineering.contaazul.com/o-santo-graal-da-arquitetura-de-software-n%C3%A3o-exi
ste-7c4cdcc75475
É preciso entender que por trás das
boas histórias há muito trabalho e,
provavelmente, alguns débitos
técnicos foram comprados.
https://engineering.contaazul.com/o-santo-graal-da-arquitetura-de-software-n%C3%A3o-exi
ste-7c4cdcc75475
Nerd adora falar mal
de tecnologia.
https://engineering.contaazul.com/o-santo-graal-da-arquitetura-de-software-n%C3%A3o-exi
ste-7c4cdcc75475
“We don’t hire people to write
code. We hire them to solve
problems.”
Jem Young
https://twitter.com/NetflixUIE/status/1012568486848000000
Dor
Recurso
Soluções
Continuidade
Modelo de maturidade
É um modelo que ajuda a determinar a
eficácia de um software e onde ele pode
ter um desempenho melhor.
https://www.martinfowler.com/bliki/MaturityModel.html
https://info.thoughtworks.com/rs/thoughtworks2/images/agile_maturity_model.pdf
“The vital point here is that the
true outcome of a maturity model
assessment isn't what level you
are but the list of things you need
to work on to improve.”
Martin Fowler
https://www.martinfowler.com/bliki/MaturityModel.html
Dor
Recurso
Soluções
Continuidade
Projetos de
Big Picture.
● A cada trimestre, desenvolvedores
faziam proposta de projetos em que
eram priorizadas por eles mesmos.
● Cada projeto poderia durar duas
semanas, e poderia ser executado
por dois desenvolvedores.
● Proporcionou-nos pagar diversos
débitos e desenvolver features para
aumentar a produtividade da
engenharia.
Time
Foundation.
● Responsável por desenvolver
soluções para aumentar a
produtividade e a qualidade das
entregas do time de engenharia.
● Executa tarefas como atualizações
de bibliotecas, desenvolvimento de
componentes e continuous
integration.
Dor
Recurso
Soluções
Continuidade
Vale a pena desenvolver produtos com
AngularJS?
“Isolar” o
AngularJS.
● Controllers, factories e filters são
escritos apenas com JavaScript.
● As dependências do Angular ficam
em um arquivo de configuração de
índice do módulo.
● Inversão de Dependência é usado
para abstrair implementações, e
dessa forma não “espalhar o
framework”.
https://engineering.contaazul.com/angularjs-e-alguns-passos-para-atualizar-sua-stack-f6ab35
f70af9
Microfrotends
Problemas ● Muitas das soluções para resolver
produtividade e qualidade são de
longo prazo.
● Tomar decisões sobre design de
código e escolha de tecnologias são
difíceis em “monolitos”.
● Nosso estrutura organizacional não
representava nossa arquitetura de
software.
“An alternative route (to rewrite a
system entirely) is to gradually
create a new system around the
edges of the old.”
Martin Fowler
https://www.martinfowler.com/bliki/StranglerApplication.html
Mount
Rota indica
um módulo
Request
do
módulo
https://engineering.contaazul.com/evolving-an-angularjs-application-using-microfrontends-
2bbcac9c023a
bad parts
Microfrontend
● Ainda é algo novo e pouco
explorado pelo mercado. Muito do
que fizemos foi dentro de casa.
● Precisamos de disciplina e muito
alinhamento para evitar retrabalho
dos times.
good parts
Microfrontends
● Provê uma maior autonomia para os
times tomarem suas próprias
escolhas.
● Nos deu a possibilidade de
testarmos novas tecnologias e
paradigmas.
● O build/deploy é,
consequentemente, bem mais
rápido que o monolito.
Nenhuma dessas soluções
funcionam sem boas pessoas.
obrigado!
@fernahh
engineering.contaazul.com

Mais conteúdo relacionado

Mais procurados

A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front endDouglas Matoso
 
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
 
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuaisJavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuaisWilliam Oliveira
 
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsersGustavo Bellini Bigardi
 
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
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometemFernando Henriques
 
Drupal 8 e ReactJS - DrupalCamp Campinas 2016
Drupal 8 e ReactJS -  DrupalCamp Campinas 2016Drupal 8 e ReactJS -  DrupalCamp Campinas 2016
Drupal 8 e ReactJS - DrupalCamp Campinas 2016Taller Negócio Digitais
 
Canal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorCanal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorGustavo Bellini Bigardi
 
Material Design simples e rapido com AngularJS
Material Design simples e rapido com AngularJSMaterial Design simples e rapido com AngularJS
Material Design simples e rapido com AngularJSHenrique Limas
 
DESIGNER E FRONT-END DEV: Prontos para mudar seu workflow?
DESIGNER E FRONT-END DEV: Prontos para mudar seu workflow?DESIGNER E FRONT-END DEV: Prontos para mudar seu workflow?
DESIGNER E FRONT-END DEV: Prontos para mudar seu workflow?RC Comunicação
 
Diego Narducci - React + Angular
Diego Narducci - React + AngularDiego Narducci - React + Angular
Diego Narducci - React + AngularDiego Narducci
 
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
 
Guia do Front-end das Galáxias
Guia do Front-end das GaláxiasGuia do Front-end das Galáxias
Guia do Front-end das GaláxiasDavidson Fellipe
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?akamud
 
Produtividade infinito e além com We.js
Produtividade infinito e além com We.jsProdutividade infinito e além com We.js
Produtividade infinito e além com We.jsAlberto Souza
 
O que você precisa saber para se tornar um dev front-end
O que você precisa saber para se tornar um dev front-endO que você precisa saber para se tornar um dev front-end
O que você precisa saber para se tornar um dev front-endDiego Eis
 

Mais procurados (20)

A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front end
 
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...
 
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuaisJavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
 
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
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
 
Arquitetura Node com NestJS
Arquitetura Node com NestJSArquitetura Node com NestJS
Arquitetura Node com NestJS
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem
 
Por que Node JS?
Por que Node JS?Por que Node JS?
Por que Node JS?
 
Drupal 8 e ReactJS - DrupalCamp Campinas 2016
Drupal 8 e ReactJS -  DrupalCamp Campinas 2016Drupal 8 e ReactJS -  DrupalCamp Campinas 2016
Drupal 8 e ReactJS - DrupalCamp Campinas 2016
 
Canal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorCanal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com Blazor
 
Material Design simples e rapido com AngularJS
Material Design simples e rapido com AngularJSMaterial Design simples e rapido com AngularJS
Material Design simples e rapido com AngularJS
 
DESIGNER E FRONT-END DEV: Prontos para mudar seu workflow?
DESIGNER E FRONT-END DEV: Prontos para mudar seu workflow?DESIGNER E FRONT-END DEV: Prontos para mudar seu workflow?
DESIGNER E FRONT-END DEV: Prontos para mudar seu workflow?
 
Diego Narducci - React + Angular
Diego Narducci - React + AngularDiego Narducci - React + Angular
Diego Narducci - React + Angular
 
Automação de build para frontend
Automação de build para frontendAutomação de build para frontend
Automação de build para frontend
 
Guia do Front-end das Galáxias
Guia do Front-end das GaláxiasGuia do Front-end das Galáxias
Guia do Front-end das Galáxias
 
Groovy e Grails 2
Groovy e Grails 2Groovy e Grails 2
Groovy e Grails 2
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
Produtividade infinito e além com We.js
Produtividade infinito e além com We.jsProdutividade infinito e além com We.js
Produtividade infinito e além com We.js
 
O que você precisa saber para se tornar um dev front-end
O que você precisa saber para se tornar um dev front-endO que você precisa saber para se tornar um dev front-end
O que você precisa saber para se tornar um dev front-end
 

Semelhante a [JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma aplicação web - Luiz Fernando Rodrigues, ContaAzul

Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformAndré Paulovich
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
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
 
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
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Ramon Durães
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livreRuan Carvalho
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software LivreRuan Carvalho
 
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
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azuretdc-globalcode
 
Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de MicroservicosNorberto Enomoto
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)Giovanni Bassi
 
Arquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócioArquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócioRalph Rassweiler
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 
Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013Leandro Silva
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...William S. Rodriguez
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSAmazon Web Services LATAM
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 

Semelhante a [JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma aplicação web - Luiz Fernando Rodrigues, ContaAzul (20)

Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud Platform
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
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
 
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
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livre
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software Livre
 
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...
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
 
Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de Microservicos
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Front end architecture
Front end architectureFront end architecture
Front end architecture
 
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
 
Arquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócioArquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócio
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWS
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 

Mais de iMasters

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroiMasters
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesiMasters
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesiMasters
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...iMasters
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesiMasters
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...iMasters
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsiMasters
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...iMasters
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudiMasters
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza LeiteiMasters
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesiMasters
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosiMasters
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeiMasters
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle MonteiroiMasters
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujoriMasters
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaiMasters
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiiMasters
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...iMasters
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisiMasters
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoiMasters
 

Mais de iMasters (20)

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
 

[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma aplicação web - Luiz Fernando Rodrigues, ContaAzul