Je documente mon code !
Par Emmanuel Deloget, vendredi 21 juillet 2006 à 07:15 :: Expériences :: permalien #5
Tags: bonnes pratiques, commentaire, fun
Enfin, j'essaie...
Documenter le code permet de le rendre plus lisible, me dit on, et pourtant mon intuition est que si seul le code illisible a besoin de documentation alors ecrire du code lisible ne nécessite pas l'écriture de commentaires particuliers. Bien évidemment, je me dois d'être plus nuancé dans mes propos : le code décrit la manière dont ont fait les choses, tandis que le but du commentaire est de décrire l'intention du programmeur.
Si je parle aujourd'hui de ce sujet particulier, c'est parce que le code que je voit actuellement me frappe : trop souvent, les commentaires qu'on découvre - que nous les ayons écrit ou que nous les trouvions dans le code écrit par quelqu'un d'autre - sont des redites du code, qui n'ont qu'une faible valeur ajoutée. J'en ai encore un exemple[1] sous les yeux au moment où j'écrit ce billet :
// read abbreviation mapping
if (!ReadAbbreviationMapping(fileName, fileDir)) {
return false;
}
Discutable, n'est-ce pas ? Pourtant, c'est la majorité de nos commentaires qui ressemblent à celui-là, et seule une minorité est intrisèquement utile. Relisez votre code, et vérifier : vous aussi, vous avez une bonne partie de commentaires inutiles.
Pourtant, si une discussion doit s'ouvrir, aucun programmeur ne dira qu'un tel commentaire est utile et qu'il vaut mieux ne pas en mettre. Tous diront qu'un commentaire se doit d'être une explication de pourquoi le code a été écrit de telle ou telle manière, et que paraphaser le code existant est une perte de temps. Alors, pourquoi est-ce que j'ai écrit ce commentaire ?
Tout simplement parce que je sais en mon for intérieur que je dois documenter mon code. Et comme celà me parait étrange d'avoir des fonctions sans aucune ligne de commentaire, j'ajoute des commentaires inutiles et verbieux dans le seul but de satisfaire mon inconscient. Une fois le commentaire ajouté, je sais qu'il ne sert à rien, mais il est là - et sur le moment, c'est bien plus important : j'ai la satisfaction du travail effectué. Bien sûr, je suis de mauvaise foi mais je suis capable de passer outre. Et puis, j'ai une dent contre les commentaires.
Au final, j'ai mes 30%[2] symboliques de commentaire (un bon pourcentage, qui prends en compte les entêtes de fichier et les entêtes de fonction) et je suis, au moins en apparence, content. Plus important, mon client, voyant les métriques du projet, voit lui aussi que le code est a priori bien documenté, et lui aussi est content.
Et si tout le monde est à peu près content, que demander de plus ? Je veux dire, à part de commentaires utiles?
Notes
[1] tiré du projet sur lequel je travaille actuellement - il s'agit donc bien de code de production, et non pas d'un projet annexe. Non, je ne suis pas fier.
[2] étrangement, la majeure partie des projets sur lesquels j'ai travaillé on des statistiques similaires. J'y vois là le signe qu'on peut en tirer un bon sujet d'étude, à garder sous le coude pour un futur billet.
Commentaires
1. Le vendredi 21 juillet 2006 à 07:52, par Christophe Moustier
2. Le vendredi 18 août 2006 à 09:26, par Emmanuel Deloget
3. Le samedi 14 octobre 2006 à 05:07, par Karim Refeyton
4. Le lundi 16 octobre 2006 à 22:09, par Emmanuel Deloget
5. Le jeudi 19 octobre 2006 à 11:02, par Stéphane MORAT
6. Le dimanche 22 octobre 2006 à 18:00, par Karim Refeyton
:: Fil rss des commentaires de ce billet ::
Ajouter un commentaire