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
ruby.wasmで多人数リアルタイム通信ゲームを作ろう
lnit
3
460
MDN Web Docs に日本語翻訳でコントリビュートしたくなる
ohmori_yusuke
1
120
Azure AI Foundryではじめてのマルチエージェントワークフロー
seosoft
0
160
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
760
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
280
データの民主化を支える、透明性のあるデータ利活用への挑戦 2025-06-25 Database Engineering Meetup#7
y_ken
0
350
20250704_教育事業におけるアジャイルなデータ基盤構築
hanon52_
5
760
Webの外へ飛び出せ NativePHPが切り拓くPHPの未来
takuyakatsusa
2
540
LT 2025-06-30: プロダクトエンジニアの役割
yamamotok
0
730
“いい感じ“な定量評価を求めて - Four Keysとアウトカムの間の探求 -
nealle
1
9.3k
初学者でも今すぐできる、Claude Codeの生産性を10倍上げるTips
s4yuba
16
11k
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
150
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
How STYLIGHT went responsive
nonsquared
100
5.6k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.7k
GraphQLとの向き合い方2022年版
quramy
49
14k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
A Modern Web Designer's Workflow
chriscoyier
694
190k
How to train your dragon (web standard)
notwaldorf
94
6.1k
Code Reviewing Like a Champion
maltzj
524
40k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
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