Chaque fois que je découvre qu'une grande partie de mon code doit être modifiée, soit parce qu'elle est incorrecte, soit parce qu'elle doit être adaptée aux changements architecturaux majeurs nécessités par d'autres raisons, voici ce que je fais généralement:
- Je commente tout le code que je soupçonne de devoir changer. Je traite le code commenté comme une sorte de ma liste TODO.
- Je passe progressivement en revue le code commenté et décommente les parties de ce code, ou les copie-colle ailleurs et les modifie si nécessaire, ou réécris des parties de ce code à partir de zéro, en regardant le code commenté pour référence. Chaque fois que je pense avoir terminé avec une partie du code commenté, je le supprime.
- Je continue jusqu'à ce que je ne voie plus de code commenté.
Je dois noter que je le fais en grande partie sur le projet personnel que je développe seul.
Cependant, on m'a dit que je devais arrêter de faire ça. On m'a dit qu'à la place, je devrais commencer à utiliser git, en faisant référence aux anciens commits pour voir l'ancien code, au lieu de laisser du code commenté. On m'a dit:
Commenter le code est une mauvaise habitude qui devrait être effacée. Vous manquez d'expérience donc vous ne comprenez pas cela. Si, dans quelques années, vous voyez le code d'une autre personne qui aime commenter le code, vous commencerez vous-même à jurer sur cette personne. Chaque fois que je vois du code commenté, je le supprime dans son intégralité, sans même le regarder, car généralement un tel code n'a aucune valeur. Vous ne verrez certainement pas les inconvénients de commenter le code dans de petits projets d'une seule personne; mais si vous trouvez un travail et que vous gardez cette habitude là, ce sera dommage.
Puis-je demander quels sont ces inconvénients de ce que je fais que je ne vois pas maintenant?
Je dois dire que je n'ai pas vraiment envie de n'utiliser que git pour voir le code passé. Comme je l'ai dit, je traite les commentaires du code comme une sorte de liste de tâches; alors que git me montrera à quoi ressemblait le code, il ne me montrera pas clairement quelles parties du code doivent encore être examinées et lesquelles sont déjà effectuées. Je crains de manquer une partie du code et d'introduire des bogues.
Pour être complet, je pense que je devrais ajouter que la personne que je cite est un développeur expérimenté et un fan du "Clean Code" d'oncle Bob - et oncle Bob a critiqué commenter le code durement dans son livre.