Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
por que construimos um monorepo?
Search
Pietro Caselani
November 10, 2018
Programming
650
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
por que construimos um monorepo?
Pietro Caselani
November 10, 2018
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
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
800
Are APIs Still Relevant in the AI Era?
soyuka
0
430
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
8
5.5k
dotNET_vulnclicker_intro.pdf
deka_morita
0
110
Kubernetes祭り #2 OP/ED
bells17
0
100
JRuby: Past, Present, and Future
headius
0
220
SREの越境 / SRE Collaboration
y0hgi
2
300
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
310
残高管理から台帳サービスへの進化
artoy
0
170
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
340
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
21
21k
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
140
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
420
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
580
YesSQL, Process and Tooling at Scale
rocio
174
15k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
970
Mind Mapping
helmedeiros
1
390
So, you think you're a good person
axbom
PRO
2
2.2k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
370
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
350
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
570
Writing Fast Ruby
sferik
630
63k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
530
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