Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Age of monorepos (NgDe)

Age of monorepos (NgDe)

Miroslav Jonaš

October 07, 2022
Tweet

More Decks by Miroslav Jonaš

Other Decks in Programming

Transcript

  1. 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
  2. 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
  3. 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
  4. 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
  5. admin store api Deploy every second week Deploy on Tuesdays

    Deploy on every change Affected graph + deploy
  6. Caching Never { build, test, lint… } same code twice

    { build, test, lint,... } Nx Local cache { build, test, lint,... } Nx Local cache CI provider
  7. @meeroslav - onlyDependOnLibsWithTags
 scope:store -> store or shared - notDependOnLibsWithTags


    scope:store !-> api - bannedExternalImports
 scope:shared !-> @angular/* enforce-module-boundaries
  8. @meeroslav - banTransitiveDependencies
 deps can get lost with update -

    checkNestedExternalImports
 shared !-> util -> @angular/* - allowCircularSelfDependency
 like living on the edge? enforce-module-boundaries
  9. @meeroslav Monorepos bring speed - local & remote caching -

    task orchestration - detecting affected nodes - distributed task execution
  10. @meeroslav Monorepos make it easy - code sharing - code

    collocation - powerful generators - consistent tooling - code constraints
  11. @meeroslav - developer mobility - collaboration as default - can

    change the organization - greater confidence - velocity increase Not just a fancy tool