34 votes

Comment convaincre vos collègues développeurs d'écrire des méthodes courtes ?

Les méthodes longues sont mauvaises pour plusieurs raisons :

  • Ils sont difficiles à comprendre
  • Ils sont difficiles à changer
  • Ils sont difficiles à réutiliser
  • Ils sont difficiles à tester
  • Ils ont une faible cohésion
  • Ils peuvent avoir un couplage élevé
  • Ils ont tendance à être excessivement complexes

Comment convaincre vos collègues développeurs d'écrire des méthodes courtes ? (les armes sont interdites =)

question de développeur agile

0 votes

Bonne question... Je me demandais la même chose :)

50voto

jrharshath Points 10422

Demandez-leur d'écrire des tests unitaires pour les méthodes.

1 votes

Un bon conseil aussi. Cela les fera réfléchir à deux fois ;)

8 votes

Il n'y a pas de demande. Dire, ou ne pas dire.

2 votes

OK, correction : "<b>Dites-lui</b> d'écrire des tests unitaires pour les méthodes." :)

26voto

Dave Sherohman Points 25122

Cela dépend de vos définitions de "court" et "long".

Quand j'entends quelqu'un dire "écrivez des méthodes courtes", je réagis immédiatement mal car j'ai rencontré trop de spaghettis écrits par des gens qui pensent que la méthode idéale fait deux lignes : Une ligne pour faire la plus petite unité de travail possible, suivie d'une ligne pour appeler une autre méthode. (Vous dites que les longues méthodes sont mauvaises parce qu'elles sont "difficiles à comprendre" ? Essayez d'entrer dans un projet où chaque action triviale génère une pile d'appels de 50 méthodes de profondeur et essayez de comprendre laquelle de ces 50 couches est celle que vous devez changer...)

En revanche, si, par "court", vous entendez "autonome et limité à une seule fonction conceptuelle", alors je suis tout à fait d'accord. Mais n'oubliez pas que cela ne peut pas être mesuré simplement par des lignes de code.

Et, comme Tydok l'a fait remarquer, on attrape plus de mouches avec du miel qu'avec du vinaigre. Essayez de leur dire pourquoi votre façon de faire est bonne au lieu de leur dire pourquoi leur façon de faire est mauvaise. Si vous pouvez le faire sans faire de comparaisons ou de références ouvertes à eux ou à leurs pratiques (à moins qu'ils ne demandent spécifiquement comment vos idées pourraient être liées à quelque chose qu'ils font), cela fonctionnera encore mieux.

1 votes

Je suis d'accord. Les piles d'appels massives devraient certainement entrer dans la discussion.

0 votes

N'est-ce pas ce qui tient dans un seul écran qui est "court" ? Mais bon, il m'arrive d'utiliser Consolas à une taille incroyablement petite avec l'écran tourné de 90 degrés... :) Quoi qu'il en soit, c'est le test unitaire qui définit le mieux ce qui est court. Si vous ne pouvez pas facilement écrire un test unitaire pour une méthode, c'est qu'elle est trop longue ;)

1 votes

La différence entre court et long est une question de "je le sais quand je le vois". Mais lorsque je vois une méthode de 400 lignes avec un indice McCabe de 40+, elle est considérée comme "longue".

24voto

Nick Dandoulakis Points 26809

Vous avez fait une liste d'inconvénients. Essayez de dresser une liste de ce que vous gagnerez en utilisant des méthodes courtes. Des exemples concrets. Puis essayez de le convaincre à nouveau.

15voto

JonoW Points 5328

J'ai lu cette citation quelque part :

Écrivez votre code comme si la personne qui doit le maintenir était un psychopathe violent, qui sait où vous vivez.

1 votes

Il est fort probable que vous ayez raison. Il n'y a pas tant de gens que ça qui peuvent éviter de maintenir leur propre code :)

7voto

UncleZeiv Points 9033

D'après mon expérience, le meilleur moyen de convaincre un pair dans ces cas-là, c'est l'exemple. Trouvez des occasions de leur montrer votre code et discutez avec eux des avantages des fonctions courtes par rapport aux fonctions longues. Ils finiront par comprendre spontanément ce qui est mieux, sans que vous ayez besoin de leur donner l'impression d'être de "mauvais" programmeurs.

1 votes

Vous voulez dire, leur apprendre à reconnaître les mauvaises odeurs dans le code, en donnant des exemples :)

1 votes

Et si, après avoir passé du temps avec eux, vous finissez par leur faire comprendre que les fonctions longues sont meilleures ? :D

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X