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
por que construimos um monorepo?
Search
Pietro Caselani
November 10, 2018
Programming
2
640
por que construimos um monorepo?
Pietro Caselani
November 10, 2018
Tweet
Share
More Decks by Pietro Caselani
See All by Pietro Caselani
CI no Nubank | Setup de ambientes macOS com Ansible
pietrocaselani
4
400
Other Decks in Programming
See All in Programming
サーバーサイドのビルド時間87倍高速化
plaidtech
PRO
0
710
私の後悔をAWS DMSで解決した話
hiramax
4
190
Tool Catalog Agent for Bedrock AgentCore Gateway
licux
2
140
The state patternの実践 個人開発で培ったpractice集
miyanokomiya
0
160
CSC305 Summer Lecture 12
javiergs
PRO
0
130
【第4回】関東Kaggler会「Kaggleは執筆に役立つ」
mipypf
0
1k
rage against annotate_predecessor
junk0612
0
160
More Approvers for Greater OSS and Japan Community
tkikuc
1
110
CloudflareのChat Agent Starter Kitで簡単!AIチャットボット構築
syumai
2
430
パッケージ設計の黒魔術/Kyoto.go#63
lufia
3
430
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
230
Honoアップデート 2025年夏
yusukebe
1
920
Featured
See All Featured
How GitHub (no longer) Works
holman
315
140k
Unsuck your backbone
ammeep
671
58k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
GraphQLとの向き合い方2022年版
quramy
49
14k
4 Signs Your Business is Dying
shpigford
184
22k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Code Review Best Practice
trishagee
70
19k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Transcript
por que construimos um monorepo? Bruno Pinheiro Pietro Caselani
- outros times focados em features - releases e automações
- infra de testes - economizar dinheiro Mobile Platform
monolito
1arquivo `.xcodeproj`
final 2016
SQUAD SQUAD SQUAD SQUAD SQUAD
None
código na master == código pronto para produção
é ela que a gente quer! master verde
problemas monolito
tempos de build e tests muito grandes
conflitos no `.xcodeproj`
código muito acoplado
frameworks
core common ui acquisition settings feed FAQ / Chat virtual
card microlibraries Credit Card NuConta app Rewards legacy code
Carthage Rome S3
builds e testes mais rápido
menos acoplamento
squads com mais autonomia
remoção de código legado
problemas frameworks
BUMP HELL!
core Credit Card NuConta app Rewards
core Credit Card NuConta app Rewards 5.0.0 Versão Lançada
core Credit Card NuConta app Rewards 5.0.0 core 5.0.0 core
5.0.0 core 5.0.0 Versão Lançada PR aberto
core Credit Card NuConta app Rewards 5.0.0 core 5.0.0 7.0.0
core 5.0.0 core 5.0.0 4.0.0 Versão Lançada PR aberto PR fechado
Credit Card NuConta Rewards core: 5.0.0 core: 5.0.0 core: 4.0.0
core Credit Card NuConta app Rewards 6.0.0 core 6.0.0 8.0.0
core 6.0.0 core 5.0.0 Versão Lançada PR aberto PR fechado
Credit Card NuConta Rewards core: 6.0.0 core: 5.0.0 core: 4.0.0
None
None
Mobile Platform aumentando a produtividade do desenvolvedor desde Nov/2017 1
iOS + 1 Android 2 pessoas ≈ 3.5 dias 6 a 7 horas até uma mudança chegar até o app final Fazer um release do app
None
e ainda temos outros problemas…
feedback de mudanças no código
releases ainda demoradas
monorepo
preocupações iniciais
tempo de build e testes
fila de pull requests (iOS + Android + RN)!
Xcode cache
None
criando o monorepo
core common ui acquisition settings feed FAQ / Chat virtual
card microlibraries Credit Card NuConta app Rewards legacy code
monorepo acquisition feed Credit Card NuConta app Rewards FAQ /
Chat legacy code
None
criar workspace e pipelines
retrocompatibilidade
mover código
None
build core common ui settings microlibraries .xctestrun
testes .xctestrun settings core common ui microlibraries
e a fila de PRs?
None
None
resultados monorepo 5 horas 5 horas até uma mudança chegar
até o app final Fazer um release do app
conclusões / aprendizado
None
sua vida é resolver problemas
“métricas hoje, métricas amanhã, métricas sempre”
futuro
www.yourdomain.com @pietrocaselani Pietro Caselani @brunopinheiro Bruno Pinheiro obrigado
sou.nu/desafio-cocoaheads
estamos contratando