Existe-t-il un guide définitif pour écrire des commentaires de code, destiné aux développeurs en herbe?
Idéalement, il couvrirait quand les commentaires devraient (et ne devraient pas) être utilisés, et quels commentaires devraient contenir.
Ne commentez pas CE QUE vous faites, mais POURQUOI vous le faites.
Le WHAT est pris en charge par un code propre, lisible et simple avec un choix approprié de noms de variables pour le prendre en charge. Les commentaires montrent une structure de niveau supérieur au code qui ne peut pas (ou est difficile à) montrer par le code lui-même.
se rapproche, mais c'est un peu concis pour les programmeurs inexpérimentés (une expansion à ce sujet avec plusieurs exemples et cas d'angle serait excellente, je pense).
Mise à jour : En plus des réponses ici, je pense que cette réponse à une autre question est très pertinente.
la source
Réponses:
Vous devez être conscient de la plus grande faiblesse des commentaires: ils deviennent périmés. Autrement dit, à mesure que le code change, les développeurs mettent rarement à jour les commentaires pour rester synchronisés avec le code. Cela signifie que vous ne pouvez jamais leur faire confiance et finir par lire le code. Pour cette raison même, votre code devrait être auto-documenté. Vous devriez choisir vos noms de fonction et de variable de telle manière que le code se lise comme de la prose.
Donc, ne documentez pas ce que fait le code. Le code d'auto-documentation devrait s'en occuper. Documentez POURQUOI vous le faites. Les POURQUOI sont généralement liés aux règles métier ou à l'architecture et ne changeront pas souvent et ne seront pas périmés aussi rapidement aux WHAT. Porte-documents. Documenter les exceptions. Documenter les décisions de conception. Et surtout, documentez les décisions de conception que vous aviez envisagées, mais avez décidé de ne pas mettre en œuvre (et documentez POURQUOI vous avez décidé de ne pas les utiliser).
la source
Vous devriez lire le livre Clean Code de Robert C. Martin . Cela explique bien que si vous avez besoin de commentaires, il est fort probable que vous ne codiez pas correctement. Idéalement, votre code devrait être «auto-commenté». Le livre Clean Coder explique comment procéder, afin que les commentaires ne soient pas nécessaires, et il décrivait bien comment faire des commentaires dans les situations où cela était nécessaire. (Comme expliquer une formule mathématique complexe)
la source
Comme indiqué, Code Complete contient diverses directives sur la rédaction de commentaires. En bref, c'est PDL et peut se résumer comme suit:
Décrivez votre intention, pas ce que fait le code. Évitez de décrire les détails de l'implémentation, sauf si vous utilisez une astuce ou si vous utilisez des implémentations personnalisées. Par exemple, utiliser des bits de décalage pour diviser, utiliser l'arithmétique du pointeur pour accéder aux membres de la classe ou utiliser un allocateur de mémoire personnalisé pour certains objets regroupés.
Écrivez d'abord le pseudo-code (c'est-à-dire les commentaires), puis écrivez-le en vrai code une fois que vous avez fini de décrire votre routine / méthode / fonction. La langue utilisée est de haut niveau mais spécifique, elle peut donc être assez verbeuse
Avoir une idée de ce que fait votre code avant même d'écrire le code
Avoir des commentaires aussi proches que le code réel
Le but est d'éviter les commentaires non liés de longue haleine qui peuvent être obsolètes, mais d'avoir des commentaires reflétant l'intention et le but du code. L'utilisation d'un pseudo-code de haut niveau permet également de clarifier votre réflexion avant d'écrire l'implémentation.
Il y a un lien sur GameDev.net [qui explique PDL] [1], au cas où vous ne voudriez pas retrouver le livre.
la source
showWindowOnTop(window)
sera toujours meilleure qu'un commentaire de même nature, tout cela est obsolète et mauvais conseil en 2012. 1) Les noms de fonction / méthode décrivent l'intention, 2) le pseudo-code est un exercice creux avec des chaînes d'outils modernes 3) Les tests vous indiquent ce que le code est censé faire avant de l'écrire, 4) un code bien nommé est meilleur que les commentaires qui ne correspondent pas à un code mal nomméJe viens de suivre un principe simple et commun: vos commentaires ne devraient pas dire ce que fait le code, mais pourquoi il le fait. L'article et le livre de Martin Fowler sur la refacturation et le livre complet du code contiennent beaucoup d'informations, mais malheureusement, ce n'est pas sous une forme résumée à ma connaissance.
la source
Ma suggestion serait d'écrire du code sans aucun commentaire, puis de m'en éloigner. Revenez-y dans un an et lisez-le. La partie que vous ne comprenez pas facilement est la partie que vous auriez dû commenter.
la source
J'aime vraiment comment Evan Todd résume son point de vue sur les seules catégories de commentaires utiles ( citant son blog ):
la source