Autres conseils

J'avais code complet par Steve McConnell à côté de mon ordinateur (par exemple les programmeurs bible) avec la page ouverte expliquant la cohésion je pensais que je partage donc,

  

Cohésion est née de la conception structurée   et est généralement discuté dans le même   contexte en tant que couplage. cohésion fait référence   à quel point toutes les routines dans un   classe ou tout le code dans une routine   soutenir un but-faire central axé   la classe est. Les classes qui contiennent   fortement les fonctionnalités associées sont   décrit comme ayant une forte cohésion,   et l'objectif est de faire heuristique   cohésion aussi forte que possible.

J'utilise le terme « séparation des préoccupations » pour expliquer cela en refactoring. Souvent, lorsque le code est assez nouveau, les choses vont se regroupées en ensemble que les préoccupations distinctes ne sont pas claires au premier abord.

Une façon simple d'illustrer ceci à votre collègue de travail serait de leur demander d'écrire des cas de test pour le code. Cela devrait illustrer le fait que le code est clair ou cohérent.

Une autre bonne expression à utiliser est que les fonctions / objets « doivent faire une chose, et le faire bien », cela a des implications dans tout des noms objet / méthode à l'architecture globale du système.

En plus des réponses à ce jour, une façon simple de penser à une forte cohésion est le manque de duplication des fonctionnalités et des fonctionnalités claires seperation connexes en modules distincts, des composants ou des classes. Ainsi, si vous voulez une fonction similaire à une autre fonction, et vous couper et coller et modifier ensuite une copie du code, vous réduisez la cohésion. Si vous modifiez le l'original pour traiter le nouveau cas, où le nouveau cas est clairement liée à la fonctionnalité existante, vous augmentez la cohésion. Autrement dit, si votre programme doit faire une chose donnée, peu importe comment les temps ou dans combien d'endroits, pour la cohésion maximale, il ne devrait y avoir un seul morceau de code qui fait cette chose. En même temps, une classe donnée, module ou composant doit avoir une seule zone de responsabilité. Tasser fonctionnalité sans rapport en une seule classe ou d'un composant réduit également la cohésion.

Comme le dit CodeWiki, la cohésion est généralement discuté avec le couplage, où les deux peuvent agir en opposition les uns aux autres, en particulier lorsque des interfaces strictes ne sont pas soigneusement planifiées. Un grand nombre des articles Googled sur la cohésion se rapportent à la conception OO, mais la cohésion et le couplage ne sont pas limités à OO.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top