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
390
Other Decks in Programming
See All in Programming
“あなた” の開発を支援する AI エージェント Bedrock Engineer / introducing-bedrock-engineer
gawa
11
1.8k
sappoRo.R #12 初心者セッション
kosugitti
0
230
Domain-Driven Transformation
hschwentner
2
1.9k
SRE、開発、QAが協業して挑んだリリースプロセス改革@SRE Kaigi 2025
nealle
3
4.1k
Flutter × Firebase Genkit で加速する生成 AI アプリ開発
coborinai
0
150
個人アプリを2年ぶりにアプデしたから褒めて / I just updated my personal app, praise me!
lovee
0
340
Lottieアニメーションをカスタマイズしてみた
tahia910
0
120
Amazon S3 TablesとAmazon S3 Metadataを触ってみた / 20250201-jawsug-tochigi-s3tables-s3metadata
kasacchiful
0
100
Honoをフロントエンドで使う 3つのやり方
yusukebe
4
2.1k
chibiccをCILに移植した結果 (NGK2025S版)
kekyo
PRO
0
210
自分ひとりから始められる生産性向上の取り組み #でぃーぷらすオオサカ
irof
8
2.6k
Linux && Docker 研修/Linux && Docker training
forrep
23
4.5k
Featured
See All Featured
Producing Creativity
orderedlist
PRO
343
39k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
29
2.2k
Git: the NoSQL Database
bkeepers
PRO
427
64k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
12
950
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
240
Site-Speed That Sticks
csswizardry
3
370
Optimizing for Happiness
mojombo
376
70k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
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