- Pourquoi pas des commentaires « pourquoi pas » ? Pas pourquoi « pas de commentaires »
- « Pourquoi ne laissez-vous pas de commentaire sur pourquoi ça n’a pas marché ? Je ne vous demande pas pourquoi vous n’avez pas mis de commentaires. »
Pourquoi pas des commentaires « pourquoi pas »
- Le code est écrit dans un langage machine structuré, tandis que les commentaires sont rédigés dans un langage humain riche en expressions
- Cela signifie qu’il ne faut pas commenter le « quoi », mais inclure autant d’informations que possible dans les identifiants
- Récemment, certains ont même soutenu qu’il ne fallait pas non plus mettre le « pourquoi » dans les commentaires, mais l’inclure dans des
LongFunctionNames ou dans les noms des cas de test
- Une base de code « auto-documentée » ajoute sa documentation à travers les identifiants
Exemple récent
- Exemple tiré de
Logic for Programmers
- Un problème est survenu lors de la génération de l’epub : les symboles mathématiques (
\forall) n’étaient pas convertis en symboles (∀)
- Un script a été écrit pour remplacer manuellement les tokens des chaînes mathématiques par de l’Unicode
- Le script a été rédigé de manière à remplacer séparément 16 symboles mathématiques, mais cette approche est inefficace
- Le problème a été résolu simplement en ajoutant un commentaire
- « On répète 16 fois pour chaque chaîne, mais le livre ne contient actuellement que 25 chaînes mathématiques et la plupart font moins de 5 caractères, donc c’est encore largement assez rapide »
Pourquoi il faut ajouter des commentaires
- Pourquoi il faut ajouter des commentaires même si du code lent ne cause pas encore de problème
- Le code pourrait devenir problématique à l’avenir
- Les commentaires montrent qu’on a conscience des trade-offs
- Quand on reviendra plus tard sur le projet, on pourra comprendre pourquoi du code lent a été écrit
Pourquoi l’auto-documentation est impossible
- Des noms de fonction longs comme
RunFewerTimesSlowerAndSimplerAlgorithmAfterConsideringTradeOffs n’expliquent pas les trade-offs
- Les identifiants de fonctions et de variables ne peuvent contenir qu’un seul type d’information
- Il est également impossible de remplacer les commentaires par des tests
- L’auto-documentation explique ce que fait le code, tandis qu’une information négative explique ce que le code ne fait pas
Spéculation à la fin de la newsletter
- L’auteur se demande si l’on peut considérer les commentaires sur « pourquoi ça ne marche pas » comme des cas contrefactuels
- Les abstractions de la communication humaine rendent-elles l’auto-documentation impossible ?
- Peut-on auto-documenter les métaphores, l’incertitude, les arguments éthiques, etc. ?
Résumé de GN⁺
- Cet article traite de l’importance des commentaires dans le code et de leurs limites
- Les commentaires permettent de clarifier les trade-offs du code et de faciliter la maintenance future
- Il souligne les limites de l’auto-documentation et la nécessité des commentaires
1 commentaires
Avis Hacker News
Quand on ajoute des commentaires au code, il faut surtout expliquer le « pourquoi » et le « pourquoi ça ne marche pas ». Dans le cas d’un code complexe, il peut aussi être utile d’expliquer brièvement le « quoi »
Les ingénieurs juniors écrivent des commentaires qui expliquent ce que fait le code, les ingénieurs intermédiaires expliquent pourquoi il a été écrit ainsi, et les ingénieurs seniors expliquent pourquoi il n’a pas été écrit autrement
Utilisation d’un modèle de commentaire pour les mainteneurs
Il est important d’ajouter des commentaires sur les parties surprenantes du code
L’importance des commentaires est soulignée, surtout lorsqu’il faut maintenir son propre code 5, 10 ou 15 ans plus tard
Il est utile d’ajouter des commentaires sur « ce qui n’est pas la solution naïve »
Il est recommandé d’inclure des commentaires dans les noms de fonctions longs ou les noms de cas de test
Il peut aussi être utile d’ajouter, via le logging de débogage, un avertissement lorsque l’entrée dépasse les contraintes prévues dans la conception initiale
Certains préfèrent utiliser beaucoup de commentaires et de commentaires de documentation
Lors des revues de code, ils écrivent des commentaires du type « la raison pour laquelle X n’a pas été fait est Y » afin de prévenir à l’avance les critiques prévisibles