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

Affichage des résultats du sondage: Faut-il commenter son code?

Votants
219. Vous ne pouvez pas participer à ce sondage.
  • Oui

    204 93,15%
  • Non

    15 6,85%
Débats sur le développement - Le Best Of Discussion :

Faut-il commenter son code source pour le rendre plus lisible et maintenable ?


Sujet :

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

  1. #121
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par millie Voir le message
    Il n'était pas trop possible ici d'avoir un gestionnaire de source commun entre le client et nous.
    C'est dommage, car ça aurait probablement simplifier la vie de tout le monde, mais on ne fait pas toujours ce que l'on souhaite malheureusement.

    Sinon pour en revenir au commentaire de versionning, comme je l'avais indiqué dans un autre message, c'est avant tout une question de contexte.

    Dans mon contexte de travail, ces commentaires n'apporte rien et ont tendance à diluer inutilement le code.
    Maintenant, il est possible de trouver différent cas de figure où ce type de commentaires est utile. La question qui se pose alors est celle de la durée de rétention de ces commentaires.

  2. #122
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Points : 38
    Points
    38
    Par défaut
    Je pense qu'il est nécessaire de commenter son code un minimum et qu'il soit commenté clairement.

    J'ai dû une fois effectuer une mise à jour d'un programme qui n'avait pas été fait par moi. Il y avait effectivement des commentaires, mais ils n'étaient pas compréhensibles du tout. J'ai donc passé du temps à comprendre tout le code alors que si les commentaires avaient été clairs j'aurais gagné pas mal de temps.

    Donc en effet, je pense que commenter son code permet une meilleure maintenance de celui-ci.

    Concernant une meilleure lisibilité je dirais que oui s'il s'agit d'une partie de code complexe, et que non s'il s'agit d'une partie simple.

  3. #123
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par gl Voir le message
    Comme expliqué précédemment, utilisé un nom d'indice purement technique autre que i apporte, de ce que j'ai pu constaté, plus de confusion qu'autre chose.
    Il y a probablement d'autres expériences et à la lecture du code source plus besoin de faire la conversion i = un objet d'une collection =(dans notre cas) un objet graphique ou un objet technique ou pour reprendre ton idée un objet qui encapsulerait cette spécificité..Voir des For each obj in objs soit des objets à la place de simple integer avec une approche oo


    Citation Envoyé par gl
    On pourrait imaginer d'utiliser des noms plus long pour les bornes et l'indice qui intégrerait cette notion, mais au final on aurait probablement des identifieurs à rallonge qui posent autant de problèmes qu'ils n'en résolvent. Les noms à rallonge et les lignes trop longue pour rentrer sur un écran ne sont en effet pas très agréable à lire (à titre personnel, je préfère lire une ou deux lignes de commentaires en bon français ou en bon anglais qu'une suite de 50 caractères contigus représentant 5 ou 6 mots accolés entre eux sans respect de la moindre grammaire, mais je te l'accorde c'est là avant tout une question de goût).
    Oui il y a déjà eu des remarques une ligne de programme c'est dans la 'norme', sans jouer sur les résolutions, 80 caractères disons pour un livre une 30-40 de mots. Mais quand tu dis sans la moindre grammaire ce n'est pas totalement vrai...

    EltGraphicToDisplay est largement compréhensible et en décomposant Element Graphic To Display où est la faute ?


    Citation Envoyé par gl
    [1] Oui, car cette construction alambiqué est fortement inspiré d'un cas réel sur lequel j'étais tombé (en tant que mainteneur du code, je ne l'avais pas commis) où il n'y avait pas de commentaire. Je ne t'explique pas combien de temps j'ai mis à comprendre pourquoi il y avait ce code bancal (il faut dire que le projet en question ne brillait pas non plus par la qualité de la documentation, au contraire).

    Oui effectivement avec le contexte cela se comprends mieux si tu passé en paramètre 0 il y avait un plantage ou cela fonctionnait en mode dégradé discret
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  4. #124
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par hegros Voir le message
    Il y a probablement d'autres expériences et à la lecture du code source plus besoin de faire la conversion i = un objet d'une collection =(dans notre cas) un objet graphique ou un objet technique ou pour reprendre ton idée un objet qui encapsulerait cette spécificité..Voir des For each obj in objs soit des objets à la place de simple integer avec une approche oo
    Au temps pour moi, je parlais ici dans le cas de langage type C, ce qui était le cas de mon exemple.

    Effectivement dans d'autre langage les possibilités offertes et les usages peuvent être différent.

    Citation Envoyé par hegros Voir le message
    Oui il y a déjà eu des remarques une ligne de programme c'est dans la 'norme', sans jouer sur les résolutions, 80 caractères disons pour un livre une 30-40 de mots. Mais quand tu dis sans la moindre grammaire ce n'est pas totalement vrai...

    EltGraphicToDisplay est largement compréhensible et en décomposant Element Graphic To Display où est la faute ?
    Dans ce cas là il n'y a pas de problème (enfin on pourrait ergoter sur l'utilisation de l'infinitif qui n'est pas super précis, mais bon). Mais est-ce généralisable ? Pour reprendre l'exemple classique, dans un jeu de dame, que fait la fonction PionMange() ?

    Citation Envoyé par hegros Voir le message
    Oui effectivement avec le contexte cela se comprends mieux si tu passé en paramètre 0 il y avait un plantage ou cela fonctionnait en mode dégradé discret
    J'avoue que je ne m'en souviens pas, je n'ai même pas le souvenir d'avoir eu la curiosité de faire le test.

  5. #125
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    pour reprendre ce que dit gl :

    Citation Envoyé par gl Voir le message
    Pour reprendre l'exemple classique, dans un jeu de dame, que fait la fonction PionMange() ?
    je dirais que :

    Citation Envoyé par hegros Voir le message
    EltGraphicToDisplay est largement compréhensible et en décomposant Element Graphic To Display où est la faute ?
    n'est, à mon sens, pas la bonne manière de nommer l'objet ou la méthode..

    Ce serait plus :


    GraphicEltToDisplay

    car je le comprend comme un nom d'objet, virtuellement graphique, qui sera affiché (éventuellement).

    Ce qui, en langage "procédural" qui m'est familier, serait programmé correctement sous la forme :

    GraphicItem (Elt est l'abréviation française de "élément", qui se dit "item" en anglais)

    void DisplayItem ( GraphicItem *Item )
    {
    }
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  6. #126
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 7
    Points : 13
    Points
    13
    Par défaut non c est non
    non
    par ce que des qu'on fait une modif
    pouf!!!
    le commentaire ne va plus avec

    il faut avoir toujours une bonne doc et un commentaire sur svn serai plus adéquat

    en tous c 'est ce que pense

  7. #127
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par souviron34 Voir le message

    void DisplayItem ( GraphicItem *Item )
    {
    }
    Oui mais comme l'a précisé gl il ne lui été pas possible de modifier la signature et encore moins le nom de la fonction puisqu'elle fait partie d'une bibliothéque d'un fournisseur.


    Le prototype de la fonction était et devait resté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void XXX_DisplayElt(int)

    Citation Envoyé par gl
    Pour reprendre l'exemple classique, dans un jeu de dame, que fait la fonction PionMange() ?

    C'est bien une fonction pas une méthode d'une classe ? Ok.

    A priori elle ne fait rien parce que sans aucun paramètre, à moins de taper dans des variables globales, elle ne devrait pas savoir faire grand chose...Tu n'as pas un exemple plus complet de ce que tu voulais souligner comme problèmatique
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  8. #128
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    Salut

    les commentaires dans le code sont bien plus que recommandable, surtout dans des projets de grande envergure a développement collaboratif.

    certes qu'il ne faut pas en abuser il faut mettre le bon commentaire au bon endroit, dans les grands projets open source la qualité des commentaires est parfois bien plus importante que celle du code lui même.

    on parlant de commentaire je fait un petit passage sur l'importance de la documentation de code qui est malheureusement ignoré par la plupart des développeurs, pourtant d'une grande étendue elle permet entre autre la génération de doc, elle permet a votre IDE de fournir des descriptions sur vos class et fonctions ainsi que leurs paramètres.....


    @+

  9. #129
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par MMB007 Voir le message
    non
    par ce que des qu'on fait une modif
    pouf!!!
    le commentaire ne va plus avec

    il faut avoir toujours une bonne doc et un commentaire sur svn serai plus adéquat
    J'ai toujours un peu de mal avec cet argument. Lorsque tu modifies le code, tu modifies le commentaires qui va avec. Je ne vois pas vraiment où est le problème.

    Se rapporter à une documentation externe ne résout en rien ce problème puisque lorsqu'on fait un modification la documentation n'est plus à jour et qu'il faut également la modifier.

    Quant aux commentaires de la gestion de conf, je ne vois pas en quoi ils peuvent remplacer les commentaires du code autres que les commentaires de versioning qui sont un cas particulier.

  10. #130
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par hegros Voir le message
    C'est bien une fonction pas une méthode d'une classe ? Ok.
    Ca ne change pas grand chose.

    Citation Envoyé par hegros Voir le message
    A priori elle ne fait rien parce que sans aucun paramètre, à moins de taper dans des variables globales, elle ne devrait pas savoir faire grand chose...Tu n'as pas un exemple plus complet de ce que tu voulais souligner comme problèmatique
    Si tu préfères, tu peux utiliser boolean PionMange(Jeu* pjeu, Pion* ppion), ca ne change pas grand chose au problème.

    L'utilisation d'un nom construit de la sorte ne permet pas toujours de faire passer toutes les subtilité (dans le cas présent forme passive/active et affirmation/question, mais ça peut être des notions temporelles, d'obligatoire/facultative ou autre).

    Bien entendu dans la majorité des cas, il est possible de trouver un nom suffisamment parlant (et heureusement), mais malheureusement, il existe toujours des cas où l'interprétation du nom peut être ambigu (à moins d'avoir des noms à rallonge). Et généralement, connaissant le contexte il ne te semblera pas ambigu à toi et à l'équipe qui travaille sur le projet, mais plutôt au gars qui va utiliser ce code bien plus tard.

  11. #131
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 210
    Points : 459
    Points
    459
    Par défaut
    Moi je m'arrange pour avoir des méthodes qui contiennent moins de 20 lignes de code, idéalement moins de 10 (pour ceux que ça ferait rire : allez jeter un œil à Spring). Et je mets tout le commentaire dans la javadoc. C'est très rare que je commente directement au milieu du code. Je trouve que ça réduit la visibilité.

  12. #132
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par aityahia Voir le message
    les commentaires dans le code sont bien plus que recommandable, surtout dans des projets de grande envergure a développement collaboratif.
    Vous pouvez simplement dire c'est plus que recommandable dans un modèle de développement open-source (il y a déjà eu un exemple avec un fichier du kernel linux) cela ne veut pas dire que c'est la ligne directrice pour tout les types de projets de développement logiciel.


    Citation Envoyé par aityahia Voir le message
    certes qu'il ne faut pas en abuser il faut mettre le bon commentaire au bon endroit, dans les grands projets open source la qualité des commentaires est parfois bien plus importante que celle du code lui même.
    C'est là tout le problème le bon commentaire au bon endroit car ce n'est ni une matière enseigné ni très discuté notamment par des livres qui en exposent tout le poids..


    Citation Envoyé par aityahia Voir le message
    on parlant de commentaire je fait un petit passage sur l'importance de la documentation de code qui est malheureusement ignoré par la plupart des développeurs, pourtant d'une grande étendue elle permet entre autre la génération de doc, elle permet a votre IDE de fournir des descriptions sur vos class et fonctions ainsi que leurs paramètres.....
    Les extra-commentaires JavaDoc peuvent très bien être écrit en dehors du code source (avec un outil de rétro-ingénierie par exemple) pour ensuite être généré et documenter les classes et les fonctions
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  13. #133
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par gl Voir le message
    <..>
    Pour revenir sur les noms à rallonge retournons à ton premier exemple. Dans un certain sens la rallonge ne fais qu'expliciter un peu plus le code peut-être est-ce ce manque qui nous fais ajouter des commentaires ?


    Version avec commentaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /* Attention, la bibliothèque XXX indice ces éléments de 1 à n.
    Le premier élément se trouve donc à l'indice 1 et non 0. */
    for(i = 1; i <= N; i++)
    {
       XXX_DisplayElt(i);
    }
    version sans commentaire*

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(i = START_INDEX_WITH_1_CONVENTION_LIB_XXX; i <= N; i++)
    {
       XXX_DisplayElt(i);
    }
    Il pourrait y avoir d'autres versions surement meilleur qui annulerait le commentaire ou en plus fantaisie WARNING_START_INDEX_WITH_1_CONVENTION_LIB_XXX. Cela fait beaucoup de mot d'accord c'est une question de vocabulaire on pourrait toujours trouver plus petit et plus explicite

    Cela ne me déplairait pas de sonder ces 2 versions parce qu'à mon sens c'est très explicite et le commentaire serait vraiment redondant et n'apporte ni plus de lisibilité que de maintenabilité


    *rien n'empêche d'écrire un for sur 2 lignes c'est tout autant lisible et répandu.
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  14. #134
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FIRST_ELEMENT_STARTS_WITH_1_NO_0_CONVENTION_LIB_XXX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /* Attention, la bibliothèque XXX indice ces éléments de 1 à n.
    Le premier élément se trouve donc à l'indice 1 et non 0. */

    En même temps c'est un exemple exceptionnelle(dixit gl) parce qu'ici nous avons Sujet + verbe + complément quasi langage naturel...En gras la redondance/duplication.

    Ca choque à ce point ?
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  15. #135
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Ce que je retiens de cet exemple, c'est qu'une lib devrait fournir des itérateurs (ou similaire), plutôt que d'utiliser une convention implicite ou explicite...

    J'ai eu le problème en migrant une appli vb6 vers vb.net, c'est tellement la merde avec les indices, qu'au final, j'ai tout passé en boucle for each pour être sûr de ne pas me planter.

  16. #136
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par hegros Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FIRST_ELEMENT_STARTS_WITH_1_NO_0_CONVENTION_LIB_XXX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /* Attention, la bibliothèque XXX indice ces éléments de 1 à n.
    Le premier élément se trouve donc à l'indice 1 et non 0. */
    Ca choque à ce point ?
    Oui bien sur

    Plus sérieusement, non ce n'est pas choquant juste lourd (enfin de mon point de vue), tu te traines un nom à rallonge qui n'est au final qu'une reprise du commentaire à la différence qu'il est difficile à mettre en forme et dans un langage non naturel (ce n'est pas de l'anglais ou du français correct).

    Mais ma question est surtout, particulièrement si cette constante n'est utilisée qu'à cet endroit, qu'elle est la plus value de ce nom par rapport au commentaire initiale ?

    Citation Envoyé par white_tentacle Voir le message
    Ce que je retiens de cet exemple, c'est qu'une lib devrait fournir des itérateurs (ou similaire), plutôt que d'utiliser une convention implicite ou explicite...

    J'ai eu le problème en migrant une appli vb6 vers vb.net, c'est tellement la merde avec les indices, qu'au final, j'ai tout passé en boucle for each pour être sûr de ne pas me planter.
    Pour les langages qui fournissent des itérateurs, des boucle for each ou d'autres mécanismes plus ou moins équivalent, c'est certes préférable (et pas uniquement d'un point de vue de l'expressivité d'ailleurs), malheureusement tous les langages ne le proposent, et même pour les langages qui le proposent encore faut-il que la bibliothèque le supporte. C'est un peu tout le problème de devoir utiliser des bibliothèques (framework, SDK ou autre d'ailleurs) externes pour lequel il n'y a pas d'alternative viable, tu es extrêmement dépendant de leur choix même lorsque ces choix sont visiblement mauvais.

  17. #137
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par gl Voir le message

    Plus sérieusement, non ce n'est pas choquant juste lourd (enfin de mon point de vue), tu te traines un nom à rallonge qui n'est au final qu'une reprise du commentaire à la différence qu'il est difficile à mettre en forme et dans un langage non naturel (ce n'est pas de l'anglais ou du français correct).
    ok de mon point de vue le commentaire est juste lourd pas choquant non enfin plus lourd qu'une constante

    Citation Envoyé par gl
    Mais ma question est surtout, particulièrement si cette constante n'est utilisée qu'à cet endroit, qu'elle est la plus value de ce nom par rapport au commentaire initiale ?
    il faudrait déja trouver une plus value à ce commentaire n'adhérant pas du tout à ce type de commentaire qui est une spécification technique au final


    l'avantage c'est qu'on comprends aussi bien avec une constante qu'avec le commentaire, mais avec moins de caractère, alors si en une ligne (compilable) il est possible d'exprimer sans ambiguité une obscurité de code alors pourquoi se prendre la tête d'en écrire 3 ?

    autre avantage cela compacte le code source et notamment la fonction où se trouve cette portion de code puisque la constante serait plutot défini en tête de fichier soit directement on a l'information pas la peine de descendre au fin fond du source pour se le rappeler. Voilà pour la lisibilité.

    De plus nous sommes parti sur un exemple exceptionnel soit on trouverait plus d'intérêt avec un exemple courant mais pour moi cela me semble bien suffisant..
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  18. #138
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par hegros Voir le message
    l'avantage c'est qu'on comprends aussi bien avec une constante qu'avec le commentaire, mais avec moins de caractère, alors si en une ligne (compilable) il est possible d'exprimer sans ambiguité une obscurité de code alors pourquoi se prendre la tête d'en écrire 3 ?
    Car il est difficile avec un faible nom de mots d'exprimer certaines subtilités et précisions qu'il est simple de faire passer avec 2 ou 3 phrases bien tournées.

    Citation Envoyé par hegros Voir le message
    autre avantage cela compacte le code source et notamment la fonction où se trouve cette portion de code puisque la constante serait plutot défini en tête de fichier soit directement on a l'information pas la peine de descendre au fin fond du source pour se le rappeler. Voilà pour la lisibilité.
    Oui et non.

    C'est effectivement un argument pertinent. Cependant avec des fonctions courtes, la différence (et donc l'avantage) est assez ténue.

  19. #139
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par gl Voir le message
    Car il est difficile avec un faible nom de mots d'exprimer certaines subtilités et précisions qu'il est simple de faire passer avec 2 ou 3 phrases bien tournées.
    Ok...Les exemples aussi sont difficiles à trouver ne serait-ce qu'un exemple académique bien que je doute qu'il puisse en exister vraiment... Il n'y a même pas un article ou un tutorial la dessus mince !



    Citation Envoyé par gl
    C'est effectivement un argument pertinent. Cependant avec des fonctions courtes, la différence (et donc l'avantage) est assez ténue.
    Si les fonctions sont courtes un bloc de commentaire aussi gros que la fonction en plein milieu au dessus ou en dessous cela fait tâche.

    Arrêtons ici parce que si les commentaires étaient si utiles à la lisibilité ou à la maintenabilité il y aurait beaucoup plus d'exemples qui fuserait sur le post pour le démontrer et ce n'est pas le cas. Open-source ou pas.
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  20. #140
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par hegros Voir le message
    Arrêtons ici parce que si les commentaires étaient si utiles à la lisibilité ou à la maintenabilité il y aurait beaucoup plus d'exemples qui fuserait sur le post pour le démontrer et ce n'est pas le cas. Open-source ou pas.
    Juste une petite précision pour déterminer. Comme je l'ai déjà dit [1], les cas où ils sont utiles ne sont pas fréquent du tout mais pas inexistant non plus.
    Utile n'implique pas fréquent et rare n'implique pas inutile.


    [1] Je n'avais peut être pas assez insisté sur ce point, mais ça reste des cas exceptionnels et donc forcément il ne sont pas légion (en dehors des commentaires d'en-tête de fonctions publiques, mais c'est un autre point).

Discussions similaires

  1. Outils pour protéger son code source PHP
    Par beegees dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 06/08/2013, 14h06
  2. Réponses: 25
    Dernier message: 06/01/2013, 17h22
  3. Réponses: 7
    Dernier message: 05/04/2010, 02h11
  4. Réponses: 15
    Dernier message: 16/01/2009, 00h16
  5. Comment commenter son code source proprement ...
    Par basnifo dans le forum MFC
    Réponses: 3
    Dernier message: 31/03/2006, 16h22

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