Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Age of monorepos (Armada JS 2022)
Miroslav Jonaš
October 06, 2022
Programming
0
56
Age of monorepos (Armada JS 2022)
Miroslav Jonaš
October 06, 2022
Tweet
Share
More Decks by Miroslav Jonaš
See All by Miroslav Jonaš
The other JavaScript performance (no one is talking about)
meeroslav
0
61
The Age of monorepos (JSNation)
meeroslav
0
75
Nx - The Obvious Choice
meeroslav
0
82
The Age of monorepos
meeroslav
0
94
Nx - The Easy Choice / AngularVienna
meeroslav
0
69
Nx - The Easy Choice
meeroslav
0
160
Angular Component Router (serbian)
meeroslav
0
140
New router on the block - Angular Vienna Dec '20
meeroslav
0
49
Hello generics, goodbye boilerplate (WAD live)
meeroslav
0
27
Other Decks in Programming
See All in Programming
TokyoR#103_DataProcessing
kilometer
0
540
僕が考えた超最強のKMMアプリの作り方
spbaya0141
0
180
社会人 20 年目エンジニア、発信で技術学びなおしてる話
e99h2121
1
140
Remix + Cloudflare Pages + D1 で ポケモン SV のレンタルチームを検索できるアプリを作ってみた
kuroppe1819
4
1.4k
Zynq MP SoC で楽しむエッジコンピューティング ~RTLプログラミングのススメ~
ryuz88
0
370
CDKでValidationする本当の方法 / cdk-validation
gotok365
1
210
花き業界のサプライチェーンを繋げるプロダクト開発の進め方
userlike1
0
170
What's new in Shopware 6.5
shyim
0
110
量子コンピュータ時代のプログラミングセミナー / 20221222_Amplify_seminar _route_optimization
fixstars
0
250
低レイヤーから始める GUI
fadis
18
9.4k
Form実装基本を学び直してみた
hyugatsukui
0
240
Step Functions Distributed Map を使ってみた
codemountains
0
110
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
317
22k
What's in a price? How to price your products and services
michaelherold
233
9.7k
Rails Girls Zürich Keynote
gr2m
87
12k
The Brand Is Dead. Long Live the Brand.
mthomps
48
2.9k
Designing on Purpose - Digital PM Summit 2013
jponch
108
5.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
10
1.3k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
13
5.4k
Stop Working from a Prison Cell
hatefulcrawdad
263
18k
Faster Mobile Websites
deanohume
295
29k
GitHub's CSS Performance
jonrohan
1020
430k
GraphQLの誤解/rethinking-graphql
sonatard
39
7.8k
The Power of CSS Pseudo Elements
geoffreycrofte
52
4.3k
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