Chapitre B02
Organiser l'architecture et les responsabilités
Revenir à la lecture accessibleDans ce chapitre
Ce que tu sauras faire
Concevoir des modules cohérents, des ports et des adaptateurs sans ritualiser l'architecture hexagonale.
Première synthèse
Une frontière architecturale est utile lorsqu'elle encapsule une décision susceptible d'évoluer. Un port de stockage peut exprimer les capacités nécessaires au cas d'usage sans exposer le SDK d'un fournisseur. L'adaptateur traduit ces capacités, y compris leurs erreurs, dans le protocole concret.
Cette séparation n'annule pas les différences de comportement entre fournisseurs. Taille maximale, visibilité des écritures, expiration et garanties de reprise doivent rester explicites dans le contrat. Une substitution de technologie se démontre par des tests contractuels ; elle ne se déduit pas de l'existence d'une interface.
La profondeur d'un module décrit le service rendu derrière son interface, non un quotient scientifique à maximiser. Une grande implémentation n'est pas vertueuse en soi. On évalue plutôt le nombre de décisions que ses utilisateurs doivent connaître et le coût d'une modification locale.
Déroulé prévu
- Cohésion, couplage et profondeur des modules.
- Entités, objets-valeurs et frontières d'agrégats.
- Ports, adaptateurs et direction des dépendances.
- Points de substitution pour le test et l'évolution.
Mise en pratique
Définir un port de stockage et deux adaptateurs conceptuels avec leurs différences de garanties.
Critère de réussite
Le domaine ne dépend pas du transport ; les limites de substitution sont documentées.
Sources et limites
O-MD §1, §2 ; I-MD §2 .
Cette amorce est une synthèse éditoriale, pas la preuve d'une implémentation exécutée. Les rectifications et vérifications externes sont consignées dans le registre critique . Les exemples techniques restent à développer et à tester dans la tranche.