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

Modern Angular with Signals and Signal Store Ne...

Modern Angular with Signals and Signal Store New Rules for Your Architecture @bastacon 2025 in Frankfurt

Manfred Steyer

March 03, 2025
Tweet

More Decks by Manfred Steyer

Other Decks in Programming

Transcript

  1. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer Modern

    Angular with Signals and Signal Store New Rules for Your Architecture Manfred Steyer, ANGULARarchitects.io
  2. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 7

    Lightweight Stores Component Lightweight Store method() Observables, Signals, etc. sync/ async
  3. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 12

    Stores Streamline Reactive Flow Component Lightweight Store method() Observables, Signals, etc. sync/ async Currently: Main Use Case for Signas
  4. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 15

    1) Baseline Architecture 2) How Large Should a Store be? 3) Where To Put The Store? 4) Global and/or Local State? 5) Preventing Cycles, Redundancies, and Inconsistencies Agenda
  5. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 16

    About Me (Remote) Angular Workshops and Consulting Google Developer Expert for Angular Blog, Books, Articles, and Talks about Angular Manfred Steyer, ANGULARarchitects.io
  6. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 19

    Booking Boarding Shared Feature Feature Feature Feature Feature UI UI UI UI UI UI UI UI UI Data Data Data Data Data Data Util Util Util Util Util Util Smart Comp. Dumb Comp. Enterprise Monorepo Patterns, Nrwl 2018: https://tinyurl.com/y2jjxld7
  7. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 20

    Nx Libs: Modularization Incremental CI/CD Build Cache Parallelization in Builds
  8. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 21

    Sheriff @softarc/eslint-plugin-sheriff Module Boundaries on a Per-Folder Basis
  9. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 22

    Nx & Sheriff Folders: Modularization Incremental CI/CD Build Cache Parallelization in Builds Sheriff
  10. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 27

    Booking Boarding Shared Feature Feature Feature Feature Feature UI UI UI UI UI UI UI UI UI Data Data Data Data Data Data Util Util Util Util Util Util Feature Enterprise Monorepo Patterns, Nrwl 2018: https://tinyurl.com/y2jjxld7
  11. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 29

    Lightweight Stores Feature UI Data Util Cmp Cmp Lightweight Stores can live everywhere! Component vs. Module Exposed vs. Hidden
  12. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 32

    What if a Feature Needs Several Stores? FeatureStore DomainStore FeatureService
  13. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 33

    What if a Feature Needs Several Stores? FeatureStore DomainStore
  14. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 34

    What if a Feature Needs Several Stores? Store1 Store2 Eventing Utility
  15. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 38

    • Layering • Prevent Stores accessing each other • Redux DevTools Let‘s Think it Through …
  16. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 41

    6th edition 20 chapters http://angularArchitects.io/ebook Free eBook
  17. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 42

    Lightweight Stores … … size of a (sub-)feature … can live everywhere … orchestrated by a feature service … leverage layering to prevent cycles … Use DevTools! Conclusion
  18. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten @ManfredSteyer 43

    NGRX … … de facto standard for State Management in Angular … Signal Store: lightweight and highly extensible Conclusion
  19. • Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 45 [Social

    Media] Manfred Steyer [web] ANGULARarchitects.io Manfred Steyer @ Manfred Steyer Slides & Examples Remote Company Workshops and Consulting http://angulararchitects.io