Features & Couches (Front)
1. Découpage par features
Section titled “1. Découpage par features”Chaque feature suit le même contrat :
pages/: composants associés à une route (*.page.ts).components/: composants de présentation réutilisables.services/: façade HTTP (*.service.ts).models/: types et interfaces métier.index.ts: barrel public.
Exemple de service HTTP
Section titled “Exemple de service HTTP”@Injectable({ providedIn: 'root' })export class ApplicationService { private readonly http = inject(HttpClient); private readonly resourceUrl = '/api/applications';
list(): Observable<Application[]> { return this.http.get<Application[]>(this.resourceUrl); }}2. Couche core
Section titled “2. Couche core”Contient les services singleton et adapters d’infrastructure.
- Auth :
AuthServiceest un store légitime pour l’utilisateur courant et le token JWT. - HTTP :
authInterceptorajoute le token aux requêtes. - Realtime :
RealtimeServicecentralise l’accès au WebSocket.
3. Couche shared
Section titled “3. Couche shared”Fournit des briques sans connaissance de l’API : UI, pipes de formatage, directives DOM, types transverses. Un composant shared ne doit jamais importer une feature.
