SlideShare uma empresa Scribd logo
ARQUITETURA E TECNOLOGIA
MICRO
FRONTEND
DE UM JEITO QUE VOCÊ NUNCA VIU
Wagner Souza
Wagner Souza
Arquiteto de Software Curso técnico
Informática para Internet
Graduação
Sistemas Para Internet
Pós graduação
Engenharia Web
IN: wagnerssouza90
Tópicos de Hoje
Um breve resumo
O que é Frontend?
O que é Micro Frontend?
Principais modelos de Arquitetura de Sistemas
Abordagens para Micro Frontend
Ferramentas de apoio
Micro Frontend no mundo real
Conclusão
Frontend
O protagonista Quem ele é?
Um ser humano que muitas vezes não tem um papel
bem definido dentro de um projeto. ~polêmico
O que ele faz?
- Faz o Front
- Basicamente: Aplicações para Web e Mobile
Onde ele trabalha?
Freela / Home Office e/ou Empresas que tenham
área de tecnologia ou marketing. ~polêmico
O que ele estuda?
Basicamente: HTML, CSS e JS
O que é Micro Frontend?
TERMO GANHOU BASTANTE DESTAQUE EM 2016
“A web application is broken up by its pages and features, with each feature
being owned end-to-end by a single team — ThoughtWorks”
“The idea behind Micro Frontends is to think about a website or web app as a
composition of features which are owned by independent teams. Each team
has a distinct area of business or mission it cares about and specialises in. A
team is cross functional and develops its features end-to-end, from database
to user interface — micro-frontends.org".
PRINCIPAIS
MODELOS DE
ARQUITETURA
Monolito FULL
Tudo junto e misturado: cshtml, php, erb, jsp.
Monolito com SPA
Modelo divide bem a responsabilidade, porém
continua com alto acoplamento.
SPA + Micro Services
Projetos independentes, modelo vem ganhando
bastante espaço.
1 2 3 4 5 6 7 8 9 10
Tomar decisão baseado em popularidade?
Muita gente falando e fazendo
O termo “Micro Frontend” é muito popular, se pesquisarmos no
GitHub por micro frontends e/ou microapps existem 1666
repositórios relacionados hoje 13/08/2020
1 2 3 4 5 6 7 8 9 10
Seu projeto é adequado para Micro Frontend?
Você conhece de fato sua aplicação/produto?
• Sua aplicação tem muita responsabilidade?
• Sua aplicação necessita de desacoplamento?
• Sua aplicação tem um código muito antigo?
• Sua empresa está preparada para especializar os times?
• Não é uma preferência de uma pessoa?
• Quer usar outro framework?
Seu caso se encaixa em algum desses cenários?
1 2 3 4 5 6 7 8 9 10
Você precisa mesmo de Micro Frontends?
Quais são os benef ícios de Micro Frontends?
• Menos código
• Menos complexidade
• Maior desacoplamento
• Código especializado
• Agnóstico a frameworks
• Equipe de especialistas
• Equipe multidisciplinar
• Deploy independente
• Flexibilidade
Esses benef ícios são importantes para você?
1 2 3 4 5 6 7 8 9 10
Vamos falar sobre os problemas?
Quais são as desvantagens dos Micro Frontends?
• Atualização de dependências
• Interdependência entre micro frontends
• Problemas com escopos de css e js
• Single Sing-On (SSO)
• Consumo de memória do browser
• Carregamento um pouco mais lento
• Experiência do usuário
Você pode conviver com essas desvantagens?
1 2 3 4 5 6 7 8 9 10
Qual abordagem de Micro Frontend você escolherá?
Existem diversos tipos de implementações
• SSR - Server Side Rendering
• Build-time integration - Monorepo
• Runtime integration via Iframes
• Runtime integration via javascript
• Runtime integration via Web Components
Entre as opções, qual você escolherá?
1 2 3 4 5 6 7 8 9 10
Você vai escolher uma abordagem existente?
Existem muitos f rameworks para isso
• Mosaic - Zalando
• single-spa
• OpenComponents
• Polymer Project
• NUT
• Podium
• Piral
Você pode usar uma solução pronta ou criar a sua
1 2 3 4 5 6 7 8 9 10
Quantos Micro Frontends você terá?
“Vamos modularizar nossa aplicação” ~ eles disseram
• Como você dividirá sua aplicação
• Cada caso é um caso
• Você deseja ter vários micro frontends na mesma tela?
• Separar por rotas de navegação?
• Você vai compartilhar dados / estados entre Micro Frontends?
• Seu Micro Frontend será executado em domínios diferentes?
• Onde seu Micro Frontend será hospedado?
Quanto mais, menos acoplamento, sobrecarga para gerenciar
Quanto menos, mais acoplamento, menos sobrecarga para gerenciar
1 2 3 4 5 6 7 8 9 10
Qual a estrutura ideal para seu projeto?
Dividir responsabilidades ou agrupá-las?
• Multiple repositories
• Governança
• Atualizações constantes
• Monorepo - Single repository
• Pacotes grandes
• Complexidade (package.json)
• Monolítico
Qual sua escolha? Vários repositórios ou um monorepo?
Você pode combiná-los!
1 2 3 4 5 6 7 8 9 10
Quantos frameworks/libs você deseja usar?
Agnóstico a f rameworks e libs
• Muita diversidade atrapalha
• Liberdade para escolher
• Angular
• React
Se puder escolher, qual ou quais deseja usar?
• Vue
• Svelt
• Ember
• Outros …
1 2 3 4 5 6 7 8 9 10
Skin in the game
Até onde está disposto a pagar?
• Muitos desenvolvedores são motivados a inovar
• Todos querem entregar mais com menos
• Erros e acertos
• Até agora não falamos de código :)
• Em alguns casos você criará sua própria solução
• Precisamos dedicar tempo para isso, é um projeto e não uma tarefa
Dá para encarar?
Style Guide ComponentesBranding
Ferramentas essenciais
Design System
ISOLADO
Domínios de negócio
COMPARTILHADO
Fragmentos
Micro Frontend
ALGUNS EXEMPLOS DE APLICAÇÃO
Conclusões
• Faz sentido ir para Micro Frontend?
• Micro Frontend não resolve todos os problemas
• Micro Frontend não é bala de prata
• Comunicação é essencial
• Espaço para inovação
• Feature toggle like
MUITO
OBRIGADO
Arquitetura e Tecnologia
WAGNER SOUZA
wagnerssouza05@gmail.com

Mais conteúdo relacionado

Mais procurados

Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJSMicro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
KNOWARTH - Software Development Company
 
Micro Frontends
Micro FrontendsMicro Frontends
Micro Frontends
Talentica Software
 
Micro frontend
Micro frontendMicro frontend
Micro frontend
Amr Abd El Latief
 
Micro Frontends
Micro FrontendsMicro Frontends
Micro Frontends
Spyros Ioakeimidis
 
Nuxt.js - Introduction
Nuxt.js - IntroductionNuxt.js - Introduction
Nuxt.js - Introduction
Sébastien Chopin
 
Web UI Best Practices.ppt
Web UI Best Practices.pptWeb UI Best Practices.ppt
Web UI Best Practices.ppt
Hoàng Nguyễn Mạnh
 
Android volley
Android volleyAndroid volley
Android volley
Programming Talents
 
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
Codemotion
 
Top Frontend Framework 2022
Top Frontend Framework 2022Top Frontend Framework 2022
Top Frontend Framework 2022
ElenorWisozk
 
State of Micro Frontend
State of Micro FrontendState of Micro Frontend
State of Micro Frontend
Yugo Sakamoto
 
Micro-Frontend Architecture
Micro-Frontend ArchitectureMicro-Frontend Architecture
Micro-Frontend Architecture
Livares Technologies Pvt Ltd
 
Front end microservices: architectures and solution
Front end microservices: architectures and solutionFront end microservices: architectures and solution
Front end microservices: architectures and solution
Mikhail Kuznetcov
 
The Best of Both Worlds: Introducing WSO2 API Manager 4.0.0
The Best of Both Worlds: Introducing WSO2 API Manager 4.0.0The Best of Both Worlds: Introducing WSO2 API Manager 4.0.0
The Best of Both Worlds: Introducing WSO2 API Manager 4.0.0
WSO2
 
SonarQube.pptx
SonarQube.pptxSonarQube.pptx
SonarQube.pptx
YASHWANTHGANESH1
 
KITE Network Instrumentation: Advanced WebRTC Testing
KITE Network Instrumentation: Advanced WebRTC TestingKITE Network Instrumentation: Advanced WebRTC Testing
KITE Network Instrumentation: Advanced WebRTC Testing
Alexandre Gouaillard
 
General introduction to intellij idea
General introduction to intellij ideaGeneral introduction to intellij idea
General introduction to intellij idea
Yusup
 
Laravel
LaravelLaravel
Laravel
tanveerkhan62
 
DevOps
DevOps DevOps
DevOps
ARYA TM
 
How to go about testing in React?
How to go about testing in React? How to go about testing in React?
How to go about testing in React?
Lisa Gagarina
 
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
Edward Kuo
 

Mais procurados (20)

Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJSMicro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
 
Micro Frontends
Micro FrontendsMicro Frontends
Micro Frontends
 
Micro frontend
Micro frontendMicro frontend
Micro frontend
 
Micro Frontends
Micro FrontendsMicro Frontends
Micro Frontends
 
Nuxt.js - Introduction
Nuxt.js - IntroductionNuxt.js - Introduction
Nuxt.js - Introduction
 
Web UI Best Practices.ppt
Web UI Best Practices.pptWeb UI Best Practices.ppt
Web UI Best Practices.ppt
 
Android volley
Android volleyAndroid volley
Android volley
 
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
 
Top Frontend Framework 2022
Top Frontend Framework 2022Top Frontend Framework 2022
Top Frontend Framework 2022
 
State of Micro Frontend
State of Micro FrontendState of Micro Frontend
State of Micro Frontend
 
Micro-Frontend Architecture
Micro-Frontend ArchitectureMicro-Frontend Architecture
Micro-Frontend Architecture
 
Front end microservices: architectures and solution
Front end microservices: architectures and solutionFront end microservices: architectures and solution
Front end microservices: architectures and solution
 
The Best of Both Worlds: Introducing WSO2 API Manager 4.0.0
The Best of Both Worlds: Introducing WSO2 API Manager 4.0.0The Best of Both Worlds: Introducing WSO2 API Manager 4.0.0
The Best of Both Worlds: Introducing WSO2 API Manager 4.0.0
 
SonarQube.pptx
SonarQube.pptxSonarQube.pptx
SonarQube.pptx
 
KITE Network Instrumentation: Advanced WebRTC Testing
KITE Network Instrumentation: Advanced WebRTC TestingKITE Network Instrumentation: Advanced WebRTC Testing
KITE Network Instrumentation: Advanced WebRTC Testing
 
General introduction to intellij idea
General introduction to intellij ideaGeneral introduction to intellij idea
General introduction to intellij idea
 
Laravel
LaravelLaravel
Laravel
 
DevOps
DevOps DevOps
DevOps
 
How to go about testing in React?
How to go about testing in React? How to go about testing in React?
How to go about testing in React?
 
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
 

Semelhante a Micro frontend de um jeito que você nunca viu

Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de Microservicos
Norberto Enomoto
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de Microserviços
Norberto Enomoto
 
Tecnologia badeada e MKicrofrontEnd e dotnet core
Tecnologia badeada e MKicrofrontEnd e dotnet coreTecnologia badeada e MKicrofrontEnd e dotnet core
Tecnologia badeada e MKicrofrontEnd e dotnet core
AlexandroAlves13
 
Desenvolvimento Mobile Web e o PHP
Desenvolvimento Mobile Web e o PHPDesenvolvimento Mobile Web e o PHP
Desenvolvimento Mobile Web e o PHP
Bruno Fernandes "PorKaria"
 
Micro frontend
Micro frontendMicro frontend
Micro frontend
Thiago Martins
 
Arquitetura de Micro Serviços
Arquitetura de Micro ServiçosArquitetura de Micro Serviços
Arquitetura de Micro Serviços
Fernando Ike
 
Do monolito ao micro serviço
Do monolito ao micro serviçoDo monolito ao micro serviço
Do monolito ao micro serviço
Elton Minetto
 
Como DDD e principalmente Domain Model contribuem na construção de microservi...
Como DDD e principalmente Domain Model contribuem na construção de microservi...Como DDD e principalmente Domain Model contribuem na construção de microservi...
Como DDD e principalmente Domain Model contribuem na construção de microservi...
Isaac de Souza
 
Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010
Maurício Linhares
 
O Diferencial de uma Estratégia Mobile...e Multiplataforma!
O Diferencial de uma Estratégia Mobile...e Multiplataforma!O Diferencial de uma Estratégia Mobile...e Multiplataforma!
O Diferencial de uma Estratégia Mobile...e Multiplataforma!
Xpand IT
 
Desenvolvimento Mobile Web & Software Livre - Flisol cg
Desenvolvimento Mobile Web & Software Livre - Flisol cgDesenvolvimento Mobile Web & Software Livre - Flisol cg
Desenvolvimento Mobile Web & Software Livre - Flisol cg
Bruno Fernandes "PorKaria"
 
Curso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksCurso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – Frameworks
Jonata Weber
 
Apps tecnologias e usos
Apps   tecnologias e usosApps   tecnologias e usos
Apps tecnologias e usos
Alexandre Oliveira
 
Impacto dos frameworks PHP
Impacto dos frameworks PHPImpacto dos frameworks PHP
Impacto dos frameworks PHP
Thiago Rodrigues
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework Laminas
Flávio Lisboa
 
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Isaac de Souza
 
Microservicos + Service Mesh
Microservicos + Service MeshMicroservicos + Service Mesh
Microservicos + Service Mesh
Fransber Assunção
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de Microserviços
Norberto Enomoto
 
Não deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkNão deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do framework
Giuseppe Lopes
 
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Pedro Edson Silva Barros
 

Semelhante a Micro frontend de um jeito que você nunca viu (20)

Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de Microservicos
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de Microserviços
 
Tecnologia badeada e MKicrofrontEnd e dotnet core
Tecnologia badeada e MKicrofrontEnd e dotnet coreTecnologia badeada e MKicrofrontEnd e dotnet core
Tecnologia badeada e MKicrofrontEnd e dotnet core
 
Desenvolvimento Mobile Web e o PHP
Desenvolvimento Mobile Web e o PHPDesenvolvimento Mobile Web e o PHP
Desenvolvimento Mobile Web e o PHP
 
Micro frontend
Micro frontendMicro frontend
Micro frontend
 
Arquitetura de Micro Serviços
Arquitetura de Micro ServiçosArquitetura de Micro Serviços
Arquitetura de Micro Serviços
 
Do monolito ao micro serviço
Do monolito ao micro serviçoDo monolito ao micro serviço
Do monolito ao micro serviço
 
Como DDD e principalmente Domain Model contribuem na construção de microservi...
Como DDD e principalmente Domain Model contribuem na construção de microservi...Como DDD e principalmente Domain Model contribuem na construção de microservi...
Como DDD e principalmente Domain Model contribuem na construção de microservi...
 
Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010
 
O Diferencial de uma Estratégia Mobile...e Multiplataforma!
O Diferencial de uma Estratégia Mobile...e Multiplataforma!O Diferencial de uma Estratégia Mobile...e Multiplataforma!
O Diferencial de uma Estratégia Mobile...e Multiplataforma!
 
Desenvolvimento Mobile Web & Software Livre - Flisol cg
Desenvolvimento Mobile Web & Software Livre - Flisol cgDesenvolvimento Mobile Web & Software Livre - Flisol cg
Desenvolvimento Mobile Web & Software Livre - Flisol cg
 
Curso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksCurso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – Frameworks
 
Apps tecnologias e usos
Apps   tecnologias e usosApps   tecnologias e usos
Apps tecnologias e usos
 
Impacto dos frameworks PHP
Impacto dos frameworks PHPImpacto dos frameworks PHP
Impacto dos frameworks PHP
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework Laminas
 
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
Esquenta TDC - Como DDD e principalmente Domain Model contribuem na construçã...
 
Microservicos + Service Mesh
Microservicos + Service MeshMicroservicos + Service Mesh
Microservicos + Service Mesh
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de Microserviços
 
Não deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkNão deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do framework
 
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
 

Último

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 

Último (6)

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 

Micro frontend de um jeito que você nunca viu

  • 1. ARQUITETURA E TECNOLOGIA MICRO FRONTEND DE UM JEITO QUE VOCÊ NUNCA VIU Wagner Souza
  • 2. Wagner Souza Arquiteto de Software Curso técnico Informática para Internet Graduação Sistemas Para Internet Pós graduação Engenharia Web IN: wagnerssouza90
  • 3. Tópicos de Hoje Um breve resumo O que é Frontend? O que é Micro Frontend? Principais modelos de Arquitetura de Sistemas Abordagens para Micro Frontend Ferramentas de apoio Micro Frontend no mundo real Conclusão
  • 4. Frontend O protagonista Quem ele é? Um ser humano que muitas vezes não tem um papel bem definido dentro de um projeto. ~polêmico O que ele faz? - Faz o Front - Basicamente: Aplicações para Web e Mobile Onde ele trabalha? Freela / Home Office e/ou Empresas que tenham área de tecnologia ou marketing. ~polêmico O que ele estuda? Basicamente: HTML, CSS e JS
  • 5. O que é Micro Frontend? TERMO GANHOU BASTANTE DESTAQUE EM 2016 “A web application is broken up by its pages and features, with each feature being owned end-to-end by a single team — ThoughtWorks” “The idea behind Micro Frontends is to think about a website or web app as a composition of features which are owned by independent teams. Each team has a distinct area of business or mission it cares about and specialises in. A team is cross functional and develops its features end-to-end, from database to user interface — micro-frontends.org".
  • 6. PRINCIPAIS MODELOS DE ARQUITETURA Monolito FULL Tudo junto e misturado: cshtml, php, erb, jsp. Monolito com SPA Modelo divide bem a responsabilidade, porém continua com alto acoplamento. SPA + Micro Services Projetos independentes, modelo vem ganhando bastante espaço.
  • 7. 1 2 3 4 5 6 7 8 9 10 Tomar decisão baseado em popularidade? Muita gente falando e fazendo O termo “Micro Frontend” é muito popular, se pesquisarmos no GitHub por micro frontends e/ou microapps existem 1666 repositórios relacionados hoje 13/08/2020
  • 8. 1 2 3 4 5 6 7 8 9 10 Seu projeto é adequado para Micro Frontend? Você conhece de fato sua aplicação/produto? • Sua aplicação tem muita responsabilidade? • Sua aplicação necessita de desacoplamento? • Sua aplicação tem um código muito antigo? • Sua empresa está preparada para especializar os times? • Não é uma preferência de uma pessoa? • Quer usar outro framework? Seu caso se encaixa em algum desses cenários?
  • 9. 1 2 3 4 5 6 7 8 9 10 Você precisa mesmo de Micro Frontends? Quais são os benef ícios de Micro Frontends? • Menos código • Menos complexidade • Maior desacoplamento • Código especializado • Agnóstico a frameworks • Equipe de especialistas • Equipe multidisciplinar • Deploy independente • Flexibilidade Esses benef ícios são importantes para você?
  • 10. 1 2 3 4 5 6 7 8 9 10 Vamos falar sobre os problemas? Quais são as desvantagens dos Micro Frontends? • Atualização de dependências • Interdependência entre micro frontends • Problemas com escopos de css e js • Single Sing-On (SSO) • Consumo de memória do browser • Carregamento um pouco mais lento • Experiência do usuário Você pode conviver com essas desvantagens?
  • 11. 1 2 3 4 5 6 7 8 9 10 Qual abordagem de Micro Frontend você escolherá? Existem diversos tipos de implementações • SSR - Server Side Rendering • Build-time integration - Monorepo • Runtime integration via Iframes • Runtime integration via javascript • Runtime integration via Web Components Entre as opções, qual você escolherá?
  • 12. 1 2 3 4 5 6 7 8 9 10 Você vai escolher uma abordagem existente? Existem muitos f rameworks para isso • Mosaic - Zalando • single-spa • OpenComponents • Polymer Project • NUT • Podium • Piral Você pode usar uma solução pronta ou criar a sua
  • 13. 1 2 3 4 5 6 7 8 9 10 Quantos Micro Frontends você terá? “Vamos modularizar nossa aplicação” ~ eles disseram • Como você dividirá sua aplicação • Cada caso é um caso • Você deseja ter vários micro frontends na mesma tela? • Separar por rotas de navegação? • Você vai compartilhar dados / estados entre Micro Frontends? • Seu Micro Frontend será executado em domínios diferentes? • Onde seu Micro Frontend será hospedado? Quanto mais, menos acoplamento, sobrecarga para gerenciar Quanto menos, mais acoplamento, menos sobrecarga para gerenciar
  • 14. 1 2 3 4 5 6 7 8 9 10 Qual a estrutura ideal para seu projeto? Dividir responsabilidades ou agrupá-las? • Multiple repositories • Governança • Atualizações constantes • Monorepo - Single repository • Pacotes grandes • Complexidade (package.json) • Monolítico Qual sua escolha? Vários repositórios ou um monorepo? Você pode combiná-los!
  • 15. 1 2 3 4 5 6 7 8 9 10 Quantos frameworks/libs você deseja usar? Agnóstico a f rameworks e libs • Muita diversidade atrapalha • Liberdade para escolher • Angular • React Se puder escolher, qual ou quais deseja usar? • Vue • Svelt • Ember • Outros …
  • 16. 1 2 3 4 5 6 7 8 9 10 Skin in the game Até onde está disposto a pagar? • Muitos desenvolvedores são motivados a inovar • Todos querem entregar mais com menos • Erros e acertos • Até agora não falamos de código :) • Em alguns casos você criará sua própria solução • Precisamos dedicar tempo para isso, é um projeto e não uma tarefa Dá para encarar?
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27. Conclusões • Faz sentido ir para Micro Frontend? • Micro Frontend não resolve todos os problemas • Micro Frontend não é bala de prata • Comunicação é essencial • Espaço para inovação • Feature toggle like
  • 28. MUITO OBRIGADO Arquitetura e Tecnologia WAGNER SOUZA wagnerssouza05@gmail.com