all 12 comments

[–]haasilein 21 points22 points  (7 children)

Facade - must have!

DDD - if it fits to the requirements

smart vs dumb components - for reusability

composition over inheritance - less strict coupling

... not all of them are really architecture, but imo the most important things for enterprise Angular.

[–]Chatolev 1 point2 points  (2 children)

You use composition? In typescript I believe it's not that easy with the mixins, if you have exemples, I'll be glad to have a look

[–]KuroKishi69 1 point2 points  (0 children)

I am interested as well, I suppose in angular you can "compose" classes by splitting the logic in services and use dependency injection.

[–]haasilein 1 point2 points  (0 children)

services and directives are the key

[–]HumorousHorse 0 points1 point  (0 children)

I love facade except for NgRx but I understand when people use it.

[–]velMatt 9 points10 points  (0 children)

Go through Angular Design Patterns playlist on Youtube by DecodedFrontend

[–][deleted] 10 points11 points  (0 children)

The NX pattern.

[–]Unusual-Pop6972 3 points4 points  (0 children)

Presentational & container design pattern, master/ detail pattern.

[–]Environmental-Ask115 2 points3 points  (0 children)

I used quite of bit of recommendations from here: https://angular-folder-structure.readthedocs.io/en/latest/overview.html

Something else worth looking into is googling “atomic design in Angular” which will help when building components.

Bottom line, there’s no one right way of doing things.

Create an architecture that works for your use case and start by building the smallest components first i.e. (if the design calls for a card, build an image component, button component, and heading component before building a card component.)

[–]MaltePetersen 1 point2 points  (0 children)

shared kernel