Niveau Code
Ressource
Couplage et Cohésion : concepts liés
Le couplage et la cohésion sont liés :
- Si vous avez une bonne cohésion dans votre module, tout les éléments sont couplés.
- Si tout ce qui va ensemble est ensemble, changer le module n’affectera pas les autres modules.
- Si changer quelque chose dans le module A affecte le module B, cela signifie que cette chose du module A devrait être dans le module B.
Low coupling, High cohésion niveau code
L’objectif est de respecter le principe " Low coupling, High cohésion "
To achieve less coupling, each module should know the minimum about each other
Pour ce faire, nous devons introduire des abstractions. Cette abstraction (i.e. une interface en Java) doit expose uniquement les fonctionnalités nécessaires pour d’autres module; ni plus ni moins. Ceci offre plusieurs avantages
- vous aurez un modèle clair, une représentation claire de votre base de code. Il sera plus facile de le modifier et de le maintenir.
- Différentes équipes peuvent travailler sur différentes parties de la base de code, sans se marcher sur les pieds. Si les modules de haut niveau ont une forte cohésion et un faible couplage, la modification d’un module n’affectera pas les autres.
- Utiliser une partie de votre base de code sur une autre.
Organiser son code
Ressource
Au lieu de packager son application par utilisation (entity, service, repository) il est préférable de l’organisation par logique métier.
La cohesion de chaque module est maintenant maximale et le couplage entre les 3 modules (order, products et users) est faible.