À retenir
- Unité : tout ce qui est à l'intérieur d'un module sert le même but.
- Maintenance : plus un code est cohérent, plus il est facile à corriger ou à faire évoluer sans casser le reste.
- Simplicité : un module à forte cohésion est plus facile à comprendre pour un nouveau développeur.
La forte cohésion désigne un principe d'organisation où chaque élément d'un programme (comme une classe ou une fonction) se concentre sur une seule mission bien précise. C'est l'idée de fabriquer des outils spécialisés plutôt que des outils à tout faire : un robot de cuisine qui ne fait que pétrir a une forte cohésion, tandis qu'un robot qui aspire, tond la pelouse et mixe des soupes aurait une faible cohésion.
Étymologie
Le terme vient du latin cohaerere, signifiant « être attaché ensemble ». En informatique, ce concept a été théorisé dans les années 1960 par Larry Constantine pour définir la qualité de la conception logicielle au sein de la programmation structurée.
Exemples d'usage
- Une classe
GestionnaireDeFichiersqui contient uniquement des méthodes pour lire, écrire et supprimer des fichiers. - Un microservice dédié exclusivement à la gestion de l'authentification des utilisateurs.
- Une fonction de calcul de TVA qui ne s'occupe que de l'opération mathématique sans toucher à l'affichage ou à la base de données.
Cas d'usage
On recherche la forte cohésion lors de la phase de conception d'une architecture logicielle, particulièrement dans la programmation orientée objet (POO) ou lors du découpage d'une application en microservices. Elle intervient dès qu'il s'agit de structurer le code pour le rendre lisible et durable.
Bonnes pratiques
Appliquez le principe de responsabilité unique (SRP) : chaque module ne doit avoir qu'une seule raison de changer. Si vous avez du mal à nommer une classe sans utiliser le mot « et », c'est probablement que sa cohésion est trop faible et qu'elle doit être divisée en plusieurs éléments plus petits.
Synonymes
Antonymes
Conseil
Pour débuter, entraînez-vous à créer de petites fonctions. Si une fonction dépasse 20 lignes ou fait deux choses différentes (par exemple, calculer un prix ET l'afficher sur l'écran), séparez-la en deux. C'est le premier pas vers une architecture à forte cohésion.
Questions fréquentes
Quel est le lien avec le couplage ?
Ce sont deux notions complémentaires : on cherche généralement à obtenir une forte cohésion (solidité interne) et un couplage faible (indépendance vis-à-vis des autres modules).
Une forte cohésion rend-elle le code plus long ?
Elle peut augmenter le nombre de fichiers ou de classes, mais elle réduit drastiquement la complexité globale et la taille de chaque composant pris individuellement.