Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Vamos Falar Sobre Micro Frontends
Search
Nélio Frazão
March 12, 2020
Technology
0
160
Vamos Falar Sobre Micro Frontends
Talk apresentada no 8° Meet-up do Paraíba JS
Nélio Frazão
March 12, 2020
Tweet
Share
More Decks by Nélio Frazão
See All by Nélio Frazão
Trabalhando com Arrays e Objetos
neliofrazao
0
27
Aula de introdução a JS
neliofrazao
0
39
Vamos falar sobre TDD
neliofrazao
0
20
Other Decks in Technology
See All in Technology
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
130
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.3k
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
1
450
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
440
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
130
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
370
Tebiki Engineering Team Deck
tebiki
0
24k
Red Hat OpenStack Services on OpenShift
tamemiya
0
120
Digitization部 紹介資料
sansan33
PRO
1
6.8k
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
680
【Oracle Cloud ウェビナー】[Oracle AI Database + AWS] Oracle Database@AWSで広がるクラウドの新たな選択肢とAI時代のデータ戦略
oracle4engineer
PRO
2
170
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
820
Featured
See All Featured
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
66
37k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
200
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
190
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
My Coaching Mixtape
mlcsv
0
48
Docker and Python
trallard
47
3.7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Are puppies a ranking factor?
jonoalderson
1
2.7k
Producing Creativity
orderedlist
PRO
348
40k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
130
Transcript
VAMOS FALAR SOBRE MICRO FRONTEND Palestrante: Nélio Frazão Email:
[email protected]
SOBRE NÉLIO Nélio Frazão, Frontend, com 12 anos de experiência.
Possui MBA em Marketing Digital, pela Faculdade Estácio/Idez em /João Pessoa/PB. e especialista em Desenvolvimento de Aplicações para WEB pelo UNIPÊ
ENTENDENDO O PROBLEMA SPA (MONOLITO) DB Backend (MONOLITO) A P
I G A T W A Y
DESVANTAGENS MONOLITO Baixa Escalabilidade Falta de Flexibilidade Code Base Gigante
Complexidade Preso a uma única tecnologia. Exige que todo o sistema seja replicado. Quanto maior o sistema, maior é a base de código. Dificuldade nas entregas contínuas.
MICRO SPA (MONOLITO) DB CHECKOUT SERVICE A P I G
A T W A Y DB CATALOG SERVICE
E SE O FRONT END...
MICRO FRONT END CHECKOUT FRONT END DB CHECKOUT SERVICE A
P I G A T W A Y DB CATALOG SERVICE CATALOG FRONT END B A S E A P P
MICRO FRONT END Base APP
DEFININDO MICRO FRONTEND Um estilo de arquitetura onde podem ser
feitas entregas independentes de fragmentos de frontend que compõem uma aplicação maior.
VANTAGENS MICRO FRONTEND DEPLOY INDEPENDENTE UPGRADES INCREMENTAIS MÚLTIPLAS TECNOLOGIAS TIMES
AUTONOMOS
O QUE DEVEMOS ESPERAR DE UM MICRO FRONTEND? AGNÓSTICO DE
TECNOLOGIA ISOLAR CÓDIGO DA EQUIPE DEPLOY INDEPENDENTE CONVENÇÕES DE TRABALHO
IMPLEMENTAÇÃO BUILD-TIME COMPOSITION RUN-TIME COMPOSITION VS
BUILD-TIME COMPOSITION CHECKOUT FRONT END CATALOG FRONT END Base APP
PACKAGE REGISTRY
BUILD-TIME INTEGRATION { "name": "@ecommerce/container" , "version": "1.0.0", "description": "some
ecommerce app" , "dependencies": { "@ecommerce/checkout": "^1.2.3", "@ecommerce/catalog": "^4.5.6", } }
BUILD-TIME COMPOSITION Bundles Independentes Times separados por contexto Arquitetura monolítica
para diferentes times Sem deploys independentes
RUN-TIME COMPOSITION CHECKOUT FRONT END CATALOG FRONT END BASE APP
BUILD-TIME COMPOSITION Times independentes Deploys indepentes Pode haver muitas requisições
no lado do usuário
SERVER-SIDE TEMPLATE COMPOSITION USER'S BROWSER SERVICE 2 N G I
N X CONTAINER APP SERVER SERVICE 1 <esi:include src="include/service1" />
SERVER-SIDE TEMPLATE COMPOSITION <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>Feed
me</title> </head> <body> <h1> Feed me</h1> <esi:include src="/order" /> </body> </html> server { listen 8080; server_name localhost; root /usr/share/nginx/html; index index.html; ssi on; rewrite ^/$ http:/ /localhost:8080/browse redirect; location /browse { set $PAGE 'browse'; } location /order { set $PAGE 'order'; } location /profile { set $PAGE 'profile' } error_page 404 /index.html; } variável $PAGE guarda a URL que está sendo solicitado:
RUN-TIME INTEGRATION VIA IFRAMES <iframe src="http:/ /micro2.com"/> <iframe src="http:/micro3.com"/> <iframe
src="http:/ /www.micro1.com"/>
RUN-TIME INTEGRATION VIA WEB COMPONENTS MICRO-APP2 MICRO-APP3 MICRO-APP1
<h1>Welcome to Feed me!</h1> <script src="https:/ /browse.example.com/bundle.js"></script> <script src="https:/ /order.example.com/bundle.js"></script>
<script src="https:/ /profile.example.com/bundle.js"></script> <div id="micro-frontend-root"></div> <script type="text/javascript"> const webComponentsByRoute = { '/': 'micro-frontend-browse-restaurants', '/order-food': 'micro-frontend-order-food', '/user-profile': 'micro-frontend-user-profile', }; const webComponentType = webComponentsByRoute[window.location.pathname]; const root = document.getElementById('micro-frontend-root'); const webComponent = document.createElement(webComponentType); root.appendChild(webComponent); </script> EXEMPLO
SINGLE-SPA BOOTSTRAP MOUNT( ) UNMOUNT( )
COMPARTILHANDO DADOS
PROPS <ContainerApp className={classes.root}> <Product item={this.props.selectedItem} /> <ProductReview item={this.props.selectedItem} /> </ContainerApp>
STATE MANAGEMENT TOOLS
DOM EVENTS let event = new Event(click) elem.dispatchEvent(event) elem.addEventListener(click, e
=> { /* code */}, false ) DISPATCH O EVENTO ESCUTA O EVENTO
DESIGN DESIGN
TESTS TESTS
CONSIDERAÇÕES FINAIS CONSIDERAÇÕES FINAIS
OBRIGADO
[email protected]
http:/ /www.linkedin.com/in/neliofrazao