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:
Trimiteți un comentariu