07 iulie 2022

Angular Architecture & Best Practices - ziua 1

Arhitectura aplicatiilor

Aspecte de luat in considerare: 

* App overview * App features * Domain security * Domain rules * Logging * Services & Communication * Data models * Feature components * Shared functionality










i18n = internationalization


Organizing Features and Modules

LIFT = Localizare rapida, Identificare tipul de cod (sufixe component/service/dto), Flat structure, Dry (fara repetare cod -> reutilizare)

Organizare in functie de Features vs. Conventionala

- se prefera in functie de Features (sunt de sine-statatoare)

- conventionala este ok in interiorul unui feature, daca exista prea multe subfeatures -> ex. folder components (adauga un nivel ierarhic in plus)

Minim 1 modul per Feature (se poate importa lejer din afara)

Flat structure: evitare prea multe ierarhii (neplacut la refactorizari) -> chiar daca un Feature e inclus in altul, sa fie pe acelasi nivel cu el; ajuta si la localizare


Lazy loading of modules = nu sunt declarate in app.module.ts in imports

Core modules: servicii singleton folosite in mai multe locuri in aplicatie; se pot redenumi si "common". Se importa doar in Root Module.

Shared modules: componente, pipe-uri si directive reutilizabile. Se importa oriunde este nevoie in Feature Modules.


Creare custom library:

> ng generate library my-lib     # actualizeaza "paths" in tsconfig.json

> ng build my-lib

Publicare:

> cd dist/my-lib

> npm publish

Niciun comentariu: