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

Age of monorepos (Armada JS 2022)

Age of monorepos (Armada JS 2022)

Miroslav Jonaš

October 06, 2022
Tweet

More Decks by Miroslav Jonaš

Other Decks in Programming

Transcript

  1. The Age of Monorepos Miroslav Jonas / @meeroslav / nx.dev

    / nrwl.io
  2. @meeroslav WARNING! Bad design Flickering colors Life-changing features

  3. @meeroslav Miroslav
 Jonaš @meeroslav

  4. @meeroslav

  5. @meeroslav STATIC WEB
 (pre JS era)

  6. None
  7. @meeroslav

  8. @meeroslav successfully confusing recruiters since 1995

  9. @meeroslav Age 
 of
 Scripting

  10. None
  11. @meeroslav Age of jQuery

  12. Age of SPAs

  13. @meeroslav Age of JAMStack

  14. None
  15. @meeroslav Age of Monorepos

  16. 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
  17. 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
  18. 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
  19. Code sharing Homepage App (framework X) Admin Portal App Auth

  20. @meeroslav Just collocation NOT

  21. Affected graph + deploy admin store api

  22. admin store api Deploy every second week Deploy on Tuesdays

    Deploy on every change Affected graph + deploy
  23. Workspace analysis

  24. Task orchestration Test Build Lint Build Lint Test Build Lint

    Test
  25. None
  26. Caching Never { build, test, lint… } same code twice

    { build, test, lint,... } Nx Local cache { build, test, lint,... } Nx Local cache CI provider
  27. Distributed task execution Main agent

  28. Distributed task execution Idle time Idle time

  29. Distributed task execution

  30. Distributed task execution

  31. @meeroslav Agent utilization Optimal idle time

  32. @meeroslav

  33. Code constraints

  34. Code constraints store checkout sales coupons core shared admin

  35. @meeroslav But I have only one project…

  36. Powerful generators

  37. Consistent tooling

  38. None
  39. @meeroslav Migrate existing Create new

  40. @meeroslav Migrate existing Convert existing

  41. @meeroslav Migrate existing Convert existing

  42. @meeroslav Monorepos bring clarity - workspace analysis - graph visualization

  43. @meeroslav Monorepos bring speed - local & remote caching -

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

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

    change the organization - greater confidence - velocity increase Not just a fancy tool
  46. @meeroslav

  47. @meeroslav nx.dev / nrwl.io Use

  48. WHY BE A 10X 
 WHEN YOU CAN BE AN

    NX DEVELOPER? @meeroslav /
  49. @meeroslav

  50. Thank you Miroslav Jonas / @meeroslav / nx.dev / nrwl.io