IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Débats sur le développement - Le Best Of Discussion :

Un code bien écrit a-t-il besoin des commentaires ?


Sujet :

Débats sur le développement - Le Best Of

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 308
    Billets dans le blog
    15
    Par défaut
    Bonjour,
    à mon avis, il est toujours bon de commenter les codes; ceci aidera les tiers personnes (surtout les débutants) à comprendre sans trop de difficultés.
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc..
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par milkoseck Voir le message
    Bonjour,
    à mon avis, il est toujours bon de commenter les codes; ceci aidera les tiers personnes (surtout les débutants) à comprendre sans trop de difficultés.
    Si ton code est à visée pédagogique (comprends : qu'il est écrit pour justement permettre à un débutant d'apprendre le langage ou la programmation en générale), ton argument tient la route.

    Mais, dans un code de production, on est malgré tout en droit d'attendre de la part d'un développeur qu'il connaisse "un minimum" le langage avec lequel il travaille ou, à défaut, qu'il soit "un minimum en mesure" de faire le parallèle avec un langage qu'il connaît.

    A partir de ce point, on peut se demander ce qu'un commentaire apporte par rapport au code, et le problème devient la pérennité du commentaire par rapport au code.

    Si le commentaire permet réellement de comprendre une idée qui n'apparaît pas clairement au travers de ton code, c'est sans doute que le code lui-même devrait être revu, en choisissant des noms de variables, de types et de fonction plus explicites, ce qui nous fait, de facto, tomber dans le cas suivant.

    Si le commentaire n'apporte rien de plus par rapport au code, il est purement et simplement inutile et, à ce titre, il devient aussi dangereux que du code inutile car source d'erreur, surtout s'il n'est pas correctement mis à jour en même temps que le code.

    Et donc, si tu veux que ton commentaire soit pérenne, il faut qu'il fournisse au lecteur une information qui sera indépendante du code en lui-même. Il faut donc qu'il explique la fonctionnalité -- en ajoutant, pourquoi pas, une aide à la décision qui permette de choisir entre deux fonctionnalités équivalentes -- plus que le moyen mis en oeuvre pour y arriver, et cela ne se fait pas dans le code lui-même: cela se fera dans un cartouche.

    Je n'ai rien contre un commentaire qui prendrait la forme de
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    /* Trie la collection selon le comparateur fourni.
     *
     * Utilise le comparateur pour effectuer un tri par insertion.
     * paramètre template Collection : le type de collection à trier.
     * paramètre template Comparateur : Le type de comparateur à
     *                                     utiliser lors du tri.
    * parametre (in) collection : La collection d'objets à trier.
    * précondition : Les éléments de la collection doivent être
    *               copiables et comparables à l'aide du
    *               comparateur indiqué.
    * renvoie : Une nouvelle collection contenant les objets triés
    *           dans l'ordre prescrit par le comparateur.
    * nota    : La collection originale n'est pas modifiée lors du tri.
    * voir aussi : Peut-être préférerez-vous la fonction triQuickSort.
    */
    template <typename Collection, typename Comparateur>
    Collection triParInsertion(Collection const & col,
    Comparateur comparateur){
     
    }
    Mais je ne vois pas la moindre raison de placer un commentaire entre l'accolade ouvrante et l'accolade fermante de la fonction
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Citation Envoyé par koala01 Voir le message
    ...

    Je n'ai rien contre un commentaire qui prendrait la forme de
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    /* Trie la collection selon le comparateur fourni.
     *
     * Utilise le comparateur pour effectuer un tri par insertion.
     * paramètre template Collection : le type de collection à trier.
     * paramètre template Comparateur : Le type de comparateur à
     *                                     utiliser lors du tri.
    * parametre (in) collection : La collection d'objets à trier.
    * précondition : Les éléments de la collection doivent être
    *               copiables et comparables à l'aide du
    *               comparateur indiqué.
    * renvoie : Une nouvelle collection contenant les objets triés
    *           dans l'ordre prescrit par le comparateur.
    * nota    : La collection originale n'est pas modifiée lors du tri.
    * voir aussi : Peut-être préférerez-vous la fonction triQuickSort.
    */
    template <typename Collection, typename Comparateur>
    Collection triParInsertion(Collection const & col,
    Comparateur comparateur){
     
    }
    Ceci c'est de la documentation de l'API pas un commentaire il devrait commencer par /** et non /*.
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    /** 
     * Trie la collection selon le comparateur fourni.
     * Utilise le comparateur pour effectuer un tri par insertion.
     * nota    : La collection originale n'est pas modifiée lors du tri.
     * @param Collection col : La collection d'objets à trier.
     * @param Comparateur comparateur : comparateur à utiliser lors du tri.
     * @return : Une nouvelle collection contenant les objets triés dans l'ordre prescrit par le comparateur.
     * @see Peut-être préférerez-vous la fonction triQuickSort.
     */
    template <typename Collection, typename Comparateur>
    Collection triParInsertion(Collection const & col,
    Comparateur comparateur){
     
    }

    A+JYT

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2012
    Messages : 54
    Par défaut
    Les IDE que j'utilise (Netbeans, phpStorm) ont besoin de commentaires phpdoc bien rédigés pour fonctionner correctement (autocomplétion, documentation dans les popups...). Donc mes codes sont tous commenté en phpdoc, avec parfois quelques commentaires en ligne supplémentaire pour les trucs que je n'ai pas réussi à faire de manière évidente et dont je me dit "si un collègue reprend ça dans un an il risque de ne pas comprendre pourquoi j'ai fait ça".

  5. #5
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut
    Si j'ai bien compris, le bonhomme nous explique qu'un commentaire non pertinent n'est pas pertinent, et qu'un commentaire pertinent est pertinent.

    Sans commentaire.

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    Citation Envoyé par nouknouk Voir le message
    Si j'ai bien compris, le bonhomme nous explique qu'un commentaire non pertinent n'est pas pertinent, et qu'un commentaire pertinent est pertinent.
    Sans commentaire.
    Je pense plutôt que le "bonhomme" cherche à montrer que tout les commentaires ne sont pas pertinents. Accessoirement il montre quels commentaires sont pertinents et lesquels ne le sont pas.
    Quand je vois les codes/commentaires sur lesquels je tombe, j'ai envie de lui dire merci !
    Bon, de mon coté j'ai tendance à ne commenter à l'intérieur des méthodes que quand la situation l’exige (algo complexe). Je ne commente les méthodes/classes seulement si elles ont vocation à être utilisées en tant qu'API ou éventuellement en attendant de trouver un nom/découpage clair (avec un TODO). Je ne vais pas perdre mon temps à ajouter des @param et autres, quand la seule lecture du nom du paramètre/méthode suffit.

  7. #7
    Membre confirmé

    Homme Profil pro
    Mâle reproducteur chez Amazon
    Inscrit en
    Mars 2006
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Mâle reproducteur chez Amazon

    Informations forums :
    Inscription : Mars 2006
    Messages : 208
    Par défaut
    Les commentaires, c'est comme l'éclairage sur l'autoroute. Ce n'est pas indispensable, mais ça aide.

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Par défaut
    Je suis de plus en plus pour un code sans commentaires. Ceux ci n'ont aucune valeur pour le compilateur, et du coup sont potentiellement erronés.

    Je ne compte plus les commentaires effacés dans le code sur lequel je travaille, parce qu'ils deviennent tous obsolètes trop vite, ou bien simplement incompréhensibles, ... et pire encore, ils nous induisent souvent en erreur après un certain temps.

  9. #9
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    Citation Envoyé par mabdylon Voir le message
    Je suis de plus en plus pour un code sans commentaires. Ceux ci n'ont aucune valeur pour le compilateur, et du coup sont potentiellement erronés.

    Je ne compte plus les commentaires effacés dans le code sur lequel je travaille, parce qu'ils deviennent tous obsolètes trop vite, ou bien simplement incompréhensibles, ... et pire encore, ils nous induisent souvent en erreur après un certain temps.
    Ca me fait penser à la doc d'un projet.
    Mais bon plutot de dire que c'est le commentaire qui n'a pas d'utilité, je dirait que c'est celui qui met à jours le code qui est en tord.

    De plus c'est bien beau de dire qu'il suffit de faire un code propre mais
    1) C'est rarement le cas
    2) Tu n'as pas toujours le choix
    3) Perso il m'est déjà arriver de devoir reprendre du code que j'ai écrit il y a 2-3 ans, quand j'ai du le relire , j'ai été moins convaincu (bon j'ai de l'expérience en plus). Mais je ne suis pas sur que celui qui code est le mieux placer pour mettre des commentaires car quand on sait ce qu'on veut faire tout nous parrait limpide.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14
    Par défaut
    Je ne suis pas du tout d'accord.

    Premièrement (et ça a déjà été dit), les commentaires aident quelqu'un qui reprendrait le code à le comprendre plus facilement. A part dans un HelloWorld, les noms de variables et de méthodes ne peuvent pas être assez explicites pour se passer de commentaires. Donc, au minimum, les déclarations de variables et les entêtes de méthodes doivent être commentées.

    Ensuite, concernant le commentaire dans le corps des fonctions, ils aident autant celui qui écrit le code que celui qui le reprendra un jour. C'est vrai surtout s'il s'agit d'algorithme un peu compliqué. Avant d'écrire un code compliqué, je réfléchi à l'algo, et j'écris les principales étapes de l'algo sous forme de commentaire dans le corps de ma méthode. Une fois que c'est fait, je n'ai plus besoin de réfléchir: il ne reste qu'à remplir le code entre les commentaires.

    J'ai donc un raisonnement inverse à celui de cet article: pour moi, une méthode bien commentée doit pouvoir se comprendre en lisant uniquement les commentaires; on ne comprendra pas comment le code fait, mais on saura parfaitement ce qu'il fait.

  11. #11
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2011
    Messages : 154
    Par défaut théorie/pratique
    Dans l'absolu (vers lequel on doit se diriger), je suis super d'accord avec ce mec, il ne devrai jamais y avoir de commentaire. Si l'espace de nom, la classe, la signature de la méthode et l'organisation du code sont corrects, nul besoin de commentaire, le code parle de lui-même y compris à un débutant.
    Dans la vraie vie, il en va différemment, car il arrive toujours un moment où le choix d'un nom n'est pas évident (et on a pas le temps de trouver un truc nickel), où pour aller plus vite on écrit un algo difficile à déchiffrer, des lignes trop longues, et des paramètres équivoques ou polyvalents. Dans ces cas là, les commentaires sont nécessaires. A fortiori si il s'agit d'interfaces, ou de méthodes publiques.
    Notez que le "pourquoi" d'un code peu également être explicité par son fichier de test unitaire (encore un argument qui confirme que le TDD est une bonne pratique).

  12. #12
    Invité
    Invité(e)
    Par défaut
    Trop simple.
    1. Commente-t-on uniquement un code parce qu'on pense qu'il faut "toujours" commenter un code ?

    Commente-t-on un code pour pouvoir le relire ou pour permettre aux autres de le relire ? Et la question corolaire :
    Supprime-t-on les commentaires d'un code pour le protéger contre la relecture par des yeux indélicats ?
    Quid des obfuscateurs ?
    Quid des noms de variables "auto-documentées" qui occupent 40 caractères à force de leur ajouter des préfixes et des suffixes alors que ladite variable s'appelle déjà "RésultatBoucleAprèsSuppressionDesDoublons"
    Pourquoi utilise-t-on des acronymes comme EOF, CRLF, ASCII ? Doit-on se limiter aux acronymes historiques ou peut-on en créer de nouveaux en fonction des notions manipulées par le programme et dans ce cas, où peut-on documenter ces nouveaux acronymes ?

    autres considérations :
    Dois-je commenter du javascript ? Doisje mettre des noms de variables explicites en javascript ?
    Pire :
    Quand je fais un portage entre du php et du C# , dois-je modifier les noms de variables puisque l'un est précompilé et l'autre non ?

    Difficile alors de donner une opinion expéditive sur cette question. Un beau code est à la fois facile à lire et légèrement commenté il me semble. Pour l'éducation, les commentaires mettront l'accent sur les points étudiés.
    En production dans une grande équipe , on commente pour des professionnels supposés formés.. En solitaire free-lance on évite de produire un code trop facile à lire car on craint qu'un développeur peu expérimenté jouissant de tous les droits chez le client vienne modifier le code et y introduire des bugs de débutant aussi ....

    Tout cela me fait penser que les situations peuvent être très différentes et que les personnes qui lisent votre code ne sont pas nécéssairement bien inspirées à l'égard de votre travail . Bien entendu, le contraire est non seulement possible mais hautement souhaitable et un développeur trop parano risque de s'attirer des remarques désobligeantes qui justifieront sa future parano et ainsi de suite..

    Ensuite , il y a ces languages très optimisables comme le C où on peut recourir à des syntaxes absolument illisibles pour des raisons de performance (liste chainée de pointeurs sur pointeurs sur fonctions...)

    Est ce que cette page est uniquement réservée à des étudiants ou des gens qui ne jurent que par le code ouvert ?

    Finalement , si vous etes en confiance et que les gens qui vous entourent méritent cette confiance , commentez régulièrement car , on peut parcourir le code uniquement en lisant les commentaires pour s'arréter exactement là où on a une modif à faire - modif qui sera datée et signée dans un commentaire ...

  13. #13
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2010
    Messages : 42
    Par défaut les commentaires pour le pourquoi.
    Je suis d'accord avec l'article dans le sens qu'un commentaire n'est pas une paraphrase du code( cf la partie extrait(), load() etc ..)
    Par contre, en relisant du code, combien ai-je pu râler ou perdu de temps à comprendre le POURQUOI et non le COMMENT.
    J'aurais préféré dans le code parfois un commentaire qui explique un choix d'un algorithme ou d'une implémentation comme, par exemple en java, une ArrayList au lieu d'une LinkedList ( et y'en a d'autre; cet exemple n'est pas à prendre au pied de la lettre)
    J'ai pu constater aussi qu'en absence d'explication sur le pourquoi, on se retrouve avec du code dit "historique" avec lequel personne ne veux prendre de décision. Parfois aussi ne comprenant pas les raisons à l'époque de l'implémentation, on casse un code qui fonctionne pour des raisons bien particulières.
    Un commentaire devrait aussi indiquer des numéro de bug pour des fix.
    En conclusion, des commentaires, oui, mais qui explique le pourquoi. Encore faut il que le développeur joue le jeu : l'information n'est elle pas une source de pouvoir ?

  14. #14
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 322
    Par défaut
    Un bon code doit, selon moi, avoir des commentaires fonctionnels ayant un apport supplémentaire.

    Il est évident que du commentaire basique décrivant le code n'est pas intéressant.

  15. #15
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Bonjour.

    Je suis très controversé sur les commentaires. Je trouve cela très utile et très chiant.

    Quand je découvre un code écrit par une autre personne, c'est sympa d'avoir des commentaires de partout. Ca évite parfois de lire 15 pages de specification

    Par contre quand je code, les commentaires c'est gonflant. Il y a du vert de partout, une fonction de 20 lignes en fait 50, le cadre de travail est exécrable. Il faut scroller sur deux/trois pages, on ne peut pas avoir une vision d'ensemble correcte sur la fonction. Bref c'est comme le code trop aéré, selon moi, tout cela nuit à une bonne maintenance du code. Si on débuge une fonction qui tiens sur l'écran, ce sera plus facile de trouver l'erreur que dans le cas ou il faut scroller et re-scroller et re... A moins d'avoir une mémoire d'einstein.

    Je ne vous parle même pas des projets qui contiennent des fonctions de 100 lignes de code avec 10/15 accolades ouvrantes. Rajouter des commentaires là-dessus, et c'est du grand n'importe quoi. Vous passez plus votre vie à scroller qu'à programmer.

    Donc je suis mitigé.

    Pour la lecture d'un code inconnu, les commentaires, c'est bien.

    Quand on code, on sait ce que l'on fait. Donc commenter ce que l'on fait, ça fait doublon sur le coup. Personnellement, lorsque je code, j'ai aussi hâte de voir le résultat. Parce que commenter un code que je vais modifier 50 fois, donc recommenter 50 fois... J'exagère, mais quand vous codez tous les jours, ça prends des proportions énormes.

    Bref, comment conjurer ces deux aspects.

    Pour ma part :

    un code le plus simple possible. Des nommages explicites et peu de commentaires.
    A côté de cela, je fournis un schéma architectural du projet lorsqu'il est stable (cela permet d'avoir une vision d'ensemble du projet. Je pense que c'est mieux qu'un roman de spécification, qui sera plutôt dédié au concepteur de bibliothèque).
    Lorsque j'ai le temps, je fournis un schéma fonctionnel, histoire d'entrer un peu plus dans les détails du projet.

    Tout cela pour dire que les schémas/diagramme me sont beaucoup plus utiles que du roman/commentaire, lorsque je dois reprendre du code.

    Mais chacun sa méthode. S'il y avait une méthode universelle, on ne sera pas là à épiloguer sur les commentaires.

    L'idéal serait d'avoir un code commenté entièrement, et un code sans commentaire. L'un pour la lecture et la découverte, l'autre pour la maintenance et le débugage. Un IDE du futur quoi.

  16. #16
    Membre actif
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 49
    Par défaut
    Les commentaires sont importants. Dire que si un code a besoin de commentaire, c’est qu’il faut changer le code lui-même, c’est très con. Certaines lignes de hack ou hardware peuvent nécessiter des explications, exemple très simple l’isqrt de Carmack.

  17. #17
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 214
    Par défaut
    À lire toutes ces réponses j'en conclus, que quelque soit la durée de vie du code, quelque soit le développeur :
    - Il existe toujours un document de spécification, accessible, qui correspond exactement à ce que fais le programme, et dont la spécification pour le code examiné est identifiable aisément.
    - Toutes les subtilités du langage de programmation utilisé sont parfaitement connues.
    - Tous les algorithmes, pourvus qu'ils soient identifiés, son parfaitement connus.
    - Toutes les API utilisées sont parfaitement connues, dans toutes les versions.

    Donc de toute manière, le commentaire ne sert à pas grand chose, tout développeur code de manière suffisamment claire. En fait si quelqu'un fait remarquer qu'un commentaire aurait été utile pour telle ligne de code, RTFM, ou va te former ?

    Or un code est fait pour rester en vie quelques années, alors même que :
    - telle API n'est plus à la mode
    - tel algorithme était super connu par le développeur, mais en fait très spécifique et trouvable que dans un ouvrage inconnu du développeur lambda
    - un bug a entrainé la correction du code pour que cela fonctionne dans tous les cas, sans que la spécification en soit changée.
    - le développeur n'est pas un spécialiste du langage utilisé, et il existe une meilleure solution que le code existant (et inversement)

    En plus, dire que le bon code n'a pas besoin de commentaire, c'est être présomptueux et déclarer que c'est forcément le bon choix de programmation qui a été fait. Or nous ne sommes jamais à l'abri d'une erreur, ou d'une ignorance.

  18. #18
    Membre extrêmement actif Avatar de air-dex
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 707
    Par défaut
    Un bon code doit être compris avec un minimum de commentaires. Des noms suffisamment explicites pour les variables, classes, méthodes, fonctions, etc. peuvent déjà en éviter pas mal. Et puis tant pis si des fois ces noms sont un peu longs. Au pire un bon IDE/éditeur a toujours une fonction d'autocomplétion type "CTRL + Espace" pour compléter rapidement le nom à rallonge en question.

    Me concernant, j'utilise les commentaires pour décrire les grandes étapes de mon code avec un résumé au début de chaque grosse partie pour expliquer ladite partie. Je suis d'accord que certaines grosses parties de codes peuvent être remplacées par des fonctions ou méthodes mais à beaucoup trop morceler le code, on perd en compréhension.

    J'en mets également à certains endroits pour expliquer par exemple que tel ou tel choix peut-être dû à un bug qu'il a fallu fixer avec cette solution particulière : "J'ai fait comme ci plutôt que comme ça sinon il y a tel bug qui se produit". Un genre de "Faut pas toucher à cette partie sinon ça marche plus", mais avec la raison pour laquelle ça ne marcherait pas. Comme par exemple un workaround autour d'un bug (non résolu) d'une librairie (ça m'est déjà arrivé).

    Je pense aussi que maintenir les commentaires à jour au fur et à mesure des modifications du code est une bonne pratique qui se doit d'être respectée. Les commentaires indiquent les choses qui se passent, pas celles qui se sont passées par le passé et qui ne se passent plus dans le présent. C'est bête à dire mais encore faut-il le rappeler.

  19. #19
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 9
    Par défaut
    Pour moi les commentaires sont indispensables, à la fois dans l'en-tête d'une méthode et dans son implémentation.

    Même si tous les symboles doivent être explicites et le code doit se comprendre facilement, un commentaire est forcément beaucoup plus riche et facilite la compréhension en permettant un angle de vue différent, plus détaillé ou plus global.

    Ensuite et surtout commenter c'est se relire et s'interroger sur son code.

  20. #20
    Membre éclairé Avatar de s4mk1ng
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2008
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2008
    Messages : 535
    Par défaut
    Il n'est peut être pas nécessaire d'oposser les deux, on peut remplacer un bon nombre de commentaires par un bon nommage explicite des variables et fonctions. Après cela ne dispense pas de faire des commentaires pour les parties compliquées du code.

Discussions similaires

  1. Code Java bien écrit ?
    Par abysr dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 24/03/2015, 16h17
  2. Un code bien écrit a-t-il besoin des commentaires ?
    Par Hinault Romaric dans le forum Actualités
    Réponses: 334
    Dernier message: 19/07/2013, 14h22
  3. Un code bien commenté remplace-t-il une documentation? (+ gestion doc en entreprise)
    Par _skip dans le forum Débats sur le développement - Le Best Of
    Réponses: 30
    Dernier message: 13/01/2010, 12h12
  4. [Toutes versions] Identifier la base ACCESS où le code est écrit
    Par sl.info dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/05/2009, 16h23
  5. [Système] Exécution code php écrit via fwrite()
    Par Torpedox dans le forum Langage
    Réponses: 4
    Dernier message: 26/01/2007, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo