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

Nx - The Easy Choice / AngularVienna

Nx - The Easy Choice / AngularVienna

We live in a world constantly being bombarded with choices. Choices that drain our time and energy.

How do you decide? Are you a randomizer, an analyst, or a follower? Who should you trust?

Let me enlighten you on what benefits you may reap by using Nx (and monorepos) in various project sizes and setups.
Let me show you the easy and obvious choice you were missing this whole time.
Let me save you time and energy.

B5a5aa65ece7b78c2b73afca48c48885?s=128

Miroslav Jonaš

October 29, 2021
Tweet

More Decks by Miroslav Jonaš

Other Decks in Programming

Transcript

  1. Miroslav Jonas / @meeroslav / nx.dev / nrwl.io The Easy

    Choice @AngularVienna / October 2021
  2. CHOICES

  3. None
  4. STAY FRESH LONGER

  5. CHOOSE WISELY? How do you

  6. 01 RANDOMIZER 02 ANALYST 03 FOLLOWER

  7. ONE EASY CHOICE

  8. IN YOUR SHOES

  9. I’VE 
 SEEN THE CODE

  10. MIROSLAV JONAŠ @meeroslav

  11. WHY MONOREPOS?
 WHY NX?


  12. WHY MONOREPOS? 01 Atomic Changes 02 Shared Code 03 Single

    Set of Dependencies
  13. ATOMIC CHANGES Homepage App Common UI Admin Portal App Mobile

    App Utils Helpers
  14. ATOMIC CHANGES Homepage App Common UI Admin Portal App Mobile

    App Utils Helpers
  15. ATOMIC CHANGES Homepage App Common UI Admin Portal App Mobile

    App Utils Helpers
  16. SHARED CODE

  17. SINGLE SET OF DEPENDENCIES

  18. WHY NOT COLLOCATION? 01 Running Unnecessary Steps 02 No Code

    Boundaries 03 Inconsistent Tooling
  19. RUNNING UNNECESSARY STEPS

  20. NO CODE BOUNDARIES

  21. INCONSISTENT TOOLING

  22. COMMON MISCONCEPTIONS 01 I don’t need this 02 Too opinionated

    03 A steep learning curve 04 Too Angular-ish 05 I don’t work on FAANG sized project
  23. I DON’T NEED THIS

  24. TOO OPINIONATED

  25. A STEEP LEARNING CURVE 01 Use just the stu ff

    you know (serve, build, lint…) 02 Progress at your own pace 03 Use Nx Console

  26. None
  27. TOO ANGULARISH Angular Nest Web Node Next React

  28. I DON’T WORK FOR FAANG

  29. JUST A POC 01 Powerfull create-nx-workspace 02 Generators 03 Easy

    to jump to next level
  30. nx-create-workspace

  31. BATTERIES INCLUDED REPO GENERATORS

  32. BATTERIES INCLUDED PROJECT GENERATORS

  33. OPEN SOURCE PROJECT 01 Automated version migrations 02 Default executors

    03 Publishing/deployment
  34. CUSTOM EXECUTORS

  35. STARTUP 01 Free 02 Best practices for scaling 03 O

    ff i cial + community plugins
  36. OFFICIAL PLUGINS Angular, React + Native, Gatsby, Web ESLint, Prettier

    Storybook, Jest, Cypress NestJS, NextJS, Node LESS, SASS, Styled Components, Emotion…
  37. COMMUNITY PLUGINS …and many more…

  38. BEAM ME UP, SCOTTY! 01 Caching 02 Boundaries 03 Project

    graph
 04 Open source
  39. CACHING Never { build, test, lint… } same code twice

    { build, test, lint,... } Nx Local cache { build, test, lint,... } Nx Local cache
  40. BOUNDARIES store games sales coupons core shared admin type:app type:app

    type:feature type:feature type:feature type:util type:util scope:
 store scope:
 store scope:
 admin scope:
 admin scope:
 admin scope:
 shared scope:
 core
  41. SETTING THE RULES type:app type:feature type:util only depend on only

    depend on scope:
 store scope:
 store scope:
 shared scope:
 core type:util type:util only depend on only depend on scope:
 admin scope:
 admin scope:
 shared scope:
 core type:util only depend on only depend on type:feature scope:
 core scope:
 shared only depend on scope:
 shared scope:
 shared
  42. AFFECTED GRAPH store games sales coupons core shared admin

  43. nx affected —target=deploy store core admin

  44. OPEN SOURCE

  45. NO TRICKS
 JUST TREATS

  46. 01 MONOREPOS ROCK! 02 NX GIVES SUPERPOWERS! 03 ONE SIZE

    FITS ALL!
 04 NOT JUST FOR ANGULAR!
  47. Miroslav Jonas / @meeroslav / nx.dev / nrwl.io WHY BE

    A 10X 
 WHEN YOU CAN BE AN NX DEVELOPER? @AngularVienna / October 2021
  48. Miroslav Jonas / @meeroslav / nx.dev / nrwl.io The Easy

    Choice THANK YOU @AngularVienna / October 2021