Principe de responsabilité unique :granularité de la raison du changement

StackOverflow https://stackoverflow.com/questions/27018

  •  09-06-2019
  •  | 
  •  

Question

Lorsque vous appliquez le principe de responsabilité unique et examinez la raison pour laquelle une classe change, comment déterminez-vous si cette raison également de changer est trop granulaire ou pas assez granulaire ?

Était-ce utile?

La solution

Je ne sais pas qu'il y a une bonne réponse à celui-ci autre que "Appliquer votre jugement, en fonction de votre expérience". Échec de cela, obtenez de l'aide, ce qui, je suppose, est ce que vous faites ici;)

Sérieusement, cependant, si vous constatez que vous créez des milliards de classes pour faire ce qui semble être un travail simple, alors vous êtes probablement trop granulaire.Si vos cours semblent tous colossaux, alors vous êtes probablement trop grossier.Veuillez m'excuser si cela relève d'une évidence.

Je pense que c'est l'un de ces cas flous, sans règles strictes, qui nous montrent pourquoi nous avons besoin de programmeurs humains.Essayez simplement quelque chose, en recherchant l'équilibre, et refactorisez si vous constatez que vous allez trop loin dans un sens ou dans l'autre.Et rappelez-vous: si ça vaut la peine, ça vaut la peine de le faire mal.

Autres conseils

  1. Je ne serais pas trop inquiet de la granularité au départ.Dans un premier temps, je parlerai simplement de séparation des préoccupations à un niveau plus large.Le point fondamental est que nous devrions éviter la sur-ingénierie ici.Mais juste assez.je suis d'accord avec Lucas ici, que cette première étape s'améliorera avec l'expérience.
  2. À mesure que les exigences changent, à mesure que je commence à percevoir les « odeurs », à mesure que ma compréhension du problème s'améliore, je refactoriserai la conception en prenant en compte les préoccupations distinctes à mesure qu'elles deviennent évidentes.Fondamentalement, la séparation des préoccupations doit également être évolutive, comme pour la conception globale.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top