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 :

Etes vous pour ou contre les commentaires dans le code


Sujet :

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

  1. #21
    Membre averti Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Points : 314
    Points
    314
    Par défaut
    Citation Envoyé par ymoreau Voir le message
    Dans mes propos je ne compte pas la doc technique comme du commentaire, sinon bien évidemment il faut écrire quel est le but global des fonctions (encore que pour une partie d'entre elles le nom est souvent suffisant). Toujours dans le cadre du développement orienté objet.

    Ça été dit au dessus, il y a des cas où il faut des commentaires. Ce que je voulais dire c'est que ça doit rester des exceptions et pas des habitudes.
    je suis d'accord avec toi ce qui me surprend c'est ce que je disais au début interdire les commentaires. C'est pourquoi j'avais ouvert le sujet car j'aimerais avoir d'autre avis.
    Si ce message vous a aidé, pensez à voter pour lui !
    Pensez au si votre problème est résolu

    Des chercheurs qui cherchent on en trouve, des chercheurs qui trouvent on en cherche

  2. #22
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 113
    Points : 32 958
    Points
    32 958
    Billets dans le blog
    4
    Par défaut
    Interdire tous commentaires n'a pas plus de sens et n'est pas plus intelligent que de vouloir tout commenter.

    Le meilleur commentaire, c'est bien sur le code lui-même, à condition qu'il soit bien écrit, que les noms de variables soient correctement choisies, que tout le monde comprenne ce choix et s'y tienne.
    Tout simplement parce que le code sera finalement le seul commentaire toujours à jour.

    Quoi de plus chiant que de mettre à jour le commentaire d'un code qu'on vient de mettre à jour ?

    Pour ma part, je me contente de
    - le header de la fonction en doxygen
    - quelques commentaires au milieu, commentaires purement fonctionnels en général
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #23
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Tout à fait, une interdiction pure et simple des commentaires me parait totalement absurde. Par contre encourager à un code clair et déconseiller les commentaires c'est différent, on laisse le choix au programmeur de faire ce qui est pertinent selon le contexte, c'est juste une "politique" à suivre. Mais tu n'as pas parlé d'interdiction formelle au début du sujet.

  4. #24
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    ne pas oublier qu'avec le temps on code différemment...mieux dans le meilleur des cas et quand on reprend son propre code 10 ans plus tard, il arrive qu'on trouve des horreurs ou des choses assez tordues dont la logique ne saute pas aux yeux. C'est d'autant plus vrai que 10 ans plus tard, toute la subtilité de la problématique n'est plus en tête (que ce soit le protocole utilisé, la structure de la bdd, le format de fichier etc...).
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #25
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 678
    Points
    13 678
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Jidefix Voir le message
    Mon avis personnel rejoint en partie celui que tu as eu: il est inutile de commenter TECHNIQUEMENT un code.

    [...]

    En revanche, il peut-être utile de commenter FONCTIONNELLEMENT le code, de manière à récapituler son UTILITE
    Je partage cet avis, comme plein de gens, mais je n'y adhère pas totalement. Les exemples montrés étaient caricaturaux, bien que j'ai encore tendance à écrire ce genre de commentaires. Sur le coup, ça peut paraitre bête mais c'est tellement plus simple à relire quelques mois ou années plus tard. Comme le dit très justement Paul Toth :
    ne pas oublier qu'avec le temps on code différemment...mieux dans le meilleur des cas et quand on reprend son propre code 10 ans plus tard, il arrive qu'on trouve des horreurs ou des choses assez tordues dont la logique ne saute pas aux yeux. C'est d'autant plus vrai que 10 ans plus tard, toute la subtilité de la problématique n'est plus en tête (que ce soit le protocole utilisé, la structure de la bdd, le format de fichier etc...).
    De plus, cela sous-entend qu'un code est toujours techniquement compréhensible, avec des méthodes et des variables aux noms tellement beaux et adaptés que les commentaires copient ces noms de variables et de méthodes.

    Mais des fois, commentez techniquement le code quand il y a des ruses de sioux ou des codes ésotériques tels que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void *malloc(int s)
    {
      void *p ;
      s += sizeof(int) ;
      s = (s & 0xF) ?  (s & ~0xF)+ 0x10 : s ;
      p = (s > 512) ? big_Malloc(s) : small_Malloc(s) ;
      *((int*)p)++ = s ;
      return p ;
    }
    Les adeptes du K&R apprécieront le style ^^

  6. #26
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 191
    Points : 28 070
    Points
    28 070
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    ne pas oublier qu'avec le temps on code différemment...mieux dans le meilleur des cas et quand on reprend son propre code 10 ans plus tard, il arrive qu'on trouve des horreurs ou des choses assez tordues dont la logique ne saute pas aux yeux. C'est d'autant plus vrai que 10 ans plus tard, toute la subtilité de la problématique n'est plus en tête (que ce soit le protocole utilisé, la structure de la bdd, le format de fichier etc...).
    Pas besoin de 10 ans, il suffit de 6 mois, et 2 ou 3 projets assez ardus ou mal géré entre-temps
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  7. #27
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    tient un autre cas ou le commentaire est bienvenu.

    Je viens de tomber sur un bug IE9 totalement hallucinant...et comme je ne suis pas le premier j'ai trouvé une page qui montre le bug est le corrige.

    je vais donc une fois de plus ajouter un commentaire du type <!-- corrige un bug IE - NE PAS SUPPRIMER -->
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  8. #28
    Invité
    Invité(e)
    Par défaut
    Les commentaire en début de méthode pour moi sont indispensables, ça permet la description de la méthode, et des paramètres. Après dans la méthode, tous dépendant de la complexité de celle ci, mais il faut rester dans la limite du raisonnable et ne pas avoir plus de ligne de commentaire que de ligne de code!

  9. #29
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Citation Envoyé par gcorbineau Voir le message
    Les commentaire en début de méthode pour moi sont indispensables, ça permet la description de la méthode, et des paramètres. Après dans la méthode, tous dépendant de la complexité de celle ci, mais il faut rester dans la limite du raisonnable et ne pas avoir plus de ligne de commentaire que de ligne de code!
    Tout est une question de contexte surtout. Plutot que de me demander ça je me demande plutot:
    Est ce que le code va durer? va être repris? évoluer?
    Combien de personne vont devoir s'en servir?
    Etc...

    Et en fonction de ça je commente les entetes, l'intérieur ou une doc pour expliquer l'archi général.

  10. #30
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 7
    Points : 10
    Points
    10
    Par défaut
    Pour ma part, je pense que la proportion de commentaires est liée au langage mais aussi au contexte.
    On ne peut pas comparer les conditions de maintenabilité de la même façon en gestion d'incident planifiée et en stress avec une obligation de résultat.
    Dans ce deuxième cas avoir des commentaires inclus dans le programme aide certainement à répondre plus rapidement et plus surement.

    Sur des langages non objets j'applique un ratio de 20% de commentaires en moyenne et je ne suis pas sur d'être dans le cadre de la norme ISO. Mais je suis plutôt à 5% sur du C# .

  11. #31
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 177
    Points : 4 489
    Points
    4 489
    Par défaut
    en C# par odre d'importance
    1) Commenter les fonctions
    2) Utiliser les regions pour découper les classes (attributs, propriété,methodes, implémentation d'interface)
    3) Utiliser les regions pour regrouper plusieurs fonctions
    4) Expliquer le pourquoi on fait certainnes actions en cas de nécessiter
    5) Utilisation des régions pour découper certaines fonctions trop longue si on a pas eu le courage de les découper en plus petites
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  12. #32
    Membre éprouvé
    Avatar de Gecko
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Décembre 2008
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Décembre 2008
    Messages : 499
    Points : 1 277
    Points
    1 277
    Par défaut
    Personnellement mes codes sont très verbeux, c'est tip top pour s'y retrouver, par contre le code en prod ne contiens pas un seul commentaire.

    Je minimise les sources au maximum ce qui rend le code illisible mais plus réactif.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($toBe || !$toBe) echo 'That is the question';

    Mes projets: DVP I/O

  13. #33
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 191
    Points : 28 070
    Points
    28 070
    Par défaut
    Citation Envoyé par Gecko Voir le message
    Personnellement mes codes sont très verbeux, c'est tip top pour s'y retrouver, par contre le code en prod ne contiens pas un seul commentaire.

    Je minimise les sources au maximum ce qui rend le code illisible mais plus réactif.
    Sauf sur d'ancien langages purrement interprétés, les commentaires n'ont aucune influence sur la réactivité du code, ils sont supprimés à la compilation du logiciel (si tant est que l'on compile en mode Release et non pas en mode Debug)
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  14. #34
    Membre averti Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Points : 314
    Points
    314
    Par défaut
    Citation Envoyé par Gecko Voir le message
    Personnellement mes codes sont très verbeux, c'est tip top pour s'y retrouver, par contre le code en prod ne contiens pas un seul commentaire.

    Je minimise les sources au maximum ce qui rend le code illisible mais plus réactif.
    Je si je comprends bien au moment de mettre en prod tu fait un revu de ton code en supprimant tous les commentaires. Je trouve ca un peu bizarre car si on raisonne sur la taille du projet je ne pense pas que les commentaires augmentent plus 500 Mo de la taille de ton projet. Pour la compilation et l'exécution, les commentaires ne sont pas pris en charge c'est pourquoi je trouve bizarre de supprimer les commentaire pour la mis en prod
    Si ce message vous a aidé, pensez à voter pour lui !
    Pensez au si votre problème est résolu

    Des chercheurs qui cherchent on en trouve, des chercheurs qui trouvent on en cherche

  15. #35
    Membre éclairé Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Points : 791
    Points
    791
    Par défaut
    Je rajoute ma petite expérience.

    Boite de JV, solution maison (C++). Au début je mettais des petits bout de commentaire en tête de blocs pour expliciter ce que je faisais (//Check the main character's inventory.." -- Bloc d'une 20aine de ligne)

    On m'a précisé que c'était inutile. Sauf cas particulier (astuce, dépendance qui impliques des choses "bizarres"..), le code doit être suffisamment clair pour être compréhensible: "Le code est sa propre documentation".

    Si le code nécessite des commentaires toutes les 2 lignes, c'est qu'il n'est pas assez clair, que la fonction fait trop de chose, que les variables n'ont pas des noms assez explicites etc..

  16. #36
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Citation Envoyé par seeme Voir le message
    Je rajoute ma petite expérience.

    Boite de JV, solution maison (C++). Au début je mettais des petits bout de commentaire en tête de blocs pour expliciter ce que je faisais (//Check the main character's inventory.." -- Bloc d'une 20aine de ligne)

    On m'a précisé que c'était inutile. Sauf cas particulier (astuce, dépendance qui impliques des choses "bizarres"..), le code doit être suffisamment clair pour être compréhensible: "Le code est sa propre documentation".

    Si le code nécessite des commentaires toutes les 2 lignes, c'est qu'il n'est pas assez clair, que la fonction fait trop de chose, que les variables n'ont pas des noms assez explicites etc..
    C'est plutôt vrai. Mais encore faut-il avoir a coté une spec qui t'explique un peu l'ensemble, qui en gros te dessine l'archi général avec le but final.

  17. #37
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 215
    Points : 0
    Points
    0
    Par défaut
    La question ne se pose pas, les commentaires sont necessaires.

  18. #38
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Citation Envoyé par sybil Voir le message
    La question ne se pose pas, les commentaires sont necessaires.
    sans commentaire.

    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  19. #39
    Membre averti Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Points : 314
    Points
    314
    Par défaut
    Citation Envoyé par sybil Voir le message
    La question ne se pose pas, les commentaires sont necessaires.
    Heureusement qu'on fait un boulot ou rien n'est dogmatique. Tout dépend du contexte j'irais pas jusqu’à interdire les commentaires mais non plus dire qu'elles sont obligatoires.
    Si ce message vous a aidé, pensez à voter pour lui !
    Pensez au si votre problème est résolu

    Des chercheurs qui cherchent on en trouve, des chercheurs qui trouvent on en cherche

  20. #40
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 148
    Points : 28 113
    Points
    28 113
    Par défaut
    Citation Envoyé par seeme Voir le message
    Sauf cas particulier (astuce, dépendance qui impliques des choses "bizarres"..), le code doit être suffisamment clair pour être compréhensible: "Le code est sa propre documentation".

    Si le code nécessite des commentaires toutes les 2 lignes, c'est qu'il n'est pas assez clair, que la fonction fait trop de chose, que les variables n'ont pas des noms assez explicites etc..
    Citation Envoyé par omarcisses Voir le message
    Tout dépend du contexte j'irais pas jusqu’à interdire les commentaires mais non plus dire qu'elles sont obligatoires.
    Et pourtant...

    Qu'est-ce qui va plus vite ? Lire une phrase explicite, ou bien un code de 15 lignes explicite ?

    Ex :
    Code : 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
    /* Did the read went fine ? */
    if (return_code == MY_RETURN_KO)
    {
        bla bla
        bla bla
      
        appel de fonction de remplacement
       
        if (appel a merde la aussi)
        {
                bla bla erreur
                bla bla
        }
    
       fin du bla bla
    }

    Par ailleurs, dans les editeurs de code qui permettent de replier des parties de code, tu vois le commentaire, le if, et c'est tout. Tu n'as donc pas a deplier le code pour savoir ce qui est fait dedans.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. Réponses: 80
    Dernier message: 17/05/2020, 06h55
  2. Êtes-vous pour ou contre les "strict type hints" ?
    Par RideKick dans le forum Langage
    Réponses: 44
    Dernier message: 21/03/2012, 22h18
  3. Réponses: 884
    Dernier message: 28/01/2010, 14h47
  4. [Mapping O/R] - Pour ou contre les procédures stockées
    Par spidetra dans le forum Persistance des données
    Réponses: 8
    Dernier message: 03/04/2006, 11h01

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