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
Age of monorepos (Armada JS 2022)
Search
Miroslav Jonaš
October 06, 2022
Programming
0
210
Age of monorepos (Armada JS 2022)
Miroslav Jonaš
October 06, 2022
Tweet
Share
More Decks by Miroslav Jonaš
See All by Miroslav Jonaš
Drum 'n' JS
meeroslav
0
4
Monorepo demystified: Breaking the myth
meeroslav
0
2
Making the Argument for Monorepos
meeroslav
0
1
Scaling Vendure with Nx
meeroslav
0
80
Don't let compilation set the length of your Glühwein break
meeroslav
0
51
Vanquishing deployment dragons with Nx wizardry
meeroslav
0
160
Don't let compilation set the length of your coffee break
meeroslav
0
65
The other JavaScript performance (no one is talking about)
meeroslav
0
230
Age of monorepos (NgDe)
meeroslav
0
160
Other Decks in Programming
See All in Programming
Grafana Loki によるサーバログのコスト削減
mot_techtalk
1
130
Lottieアニメーションをカスタマイズしてみた
tahia910
0
130
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
110
GoとPHPのインターフェイスの違い
shimabox
2
190
『GO』アプリ バックエンドサーバのコスト削減
mot_techtalk
0
140
ファインディLT_ポケモン対戦の定量的分析
fufufukakaka
0
710
Open source software: how to live long and go far
gaelvaroquaux
0
630
Amazon Bedrock Multi Agentsを試してきた
tm2
1
290
Conform を推す - Advocating for Conform
mizoguchicoji
3
690
技術を根付かせる / How to make technology take root
kubode
1
250
苦しいTiDBへの移行を乗り越えて快適な運用を目指す
leveragestech
0
590
SwiftUI Viewの責務分離
elmetal
PRO
1
240
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Designing Experiences People Love
moore
140
23k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
550
How to Think Like a Performance Engineer
csswizardry
22
1.3k
Documentation Writing (for coders)
carmenintech
67
4.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Building Your Own Lightsaber
phodgson
104
6.2k
Statistics for Hackers
jakevdp
797
220k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Typedesign – Prime Four
hannesfritz
40
2.5k
Transcript
The Age of Monorepos Miroslav Jonas / @meeroslav / nx.dev
/ nrwl.io
@meeroslav WARNING! Bad design Flickering colors Life-changing features
@meeroslav Miroslav Jonaš @meeroslav
@meeroslav
@meeroslav STATIC WEB (pre JS era)
None
@meeroslav
@meeroslav successfully confusing recruiters since 1995
@meeroslav Age of Scripting
None
@meeroslav Age of jQuery
Age of SPAs
@meeroslav Age of JAMStack
None
@meeroslav Age of Monorepos
Homepage App (framework X) Every application* UI Components / Design
system Backend Service 1 Service 1 Service 1 Service 1 Service 1 Service 1 Service 1
Homepage App (framework X) Backend Every application* UI Components /
Design system Service 1 Service 1 Service 1 Service 1 Service 1 Service 1 Service 1 Admin Portal App Mobile App Utility v1 v3 v2_beta v1.0.1 ~2.15.0 > 3.0.0
Homepage App (framework X) Backend Collocate UI Components / Design
system Service 1 Service 1 Service 1 Service 1 Service 1 Service 1 Service 1 Admin Portal App Mobile App Utility
Code sharing Homepage App (framework X) Admin Portal App Auth
@meeroslav Just collocation NOT
Affected graph + deploy admin store api
admin store api Deploy every second week Deploy on Tuesdays
Deploy on every change Affected graph + deploy
Workspace analysis
Task orchestration Test Build Lint Build Lint Test Build Lint
Test
None
Caching Never { build, test, lint… } same code twice
{ build, test, lint,... } Nx Local cache { build, test, lint,... } Nx Local cache CI provider
Distributed task execution Main agent
Distributed task execution Idle time Idle time
Distributed task execution
Distributed task execution
@meeroslav Agent utilization Optimal idle time
@meeroslav
Code constraints
Code constraints store checkout sales coupons core shared admin
@meeroslav But I have only one project…
Powerful generators
Consistent tooling
None
@meeroslav Migrate existing Create new
@meeroslav Migrate existing Convert existing
@meeroslav Migrate existing Convert existing
@meeroslav Monorepos bring clarity - workspace analysis - graph visualization
@meeroslav Monorepos bring speed - local & remote caching -
task orchestration - detecting affected nodes - distributed task execution
@meeroslav Monorepos make it easy - code sharing - code
collocation - powerful generators - consistent tooling - code constraints
@meeroslav - developer mobility - collaboration as default - can
change the organization - greater confidence - velocity increase Not just a fancy tool
@meeroslav
@meeroslav nx.dev / nrwl.io Use
WHY BE A 10X WHEN YOU CAN BE AN
NX DEVELOPER? @meeroslav /
@meeroslav
Thank you Miroslav Jonas / @meeroslav / nx.dev / nrwl.io