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

  1. #281
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 122
    Points : 128
    Points
    128
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Mais, encore une fois, la place d'un commentaire javadoc est... dans le cartouche qui présente le fichier, la classe ou la fonction dont on parle.

    Ce genre de commentaire est, tout le monde sera d'accord sur ce point (enfin, j'espère) nécessaire, utile et indispensable car c'est ce qui permet de savoir comment utiliser le fichier, la classe ou la fonction.

    Par contre, ce qui divise les gens, ce sont les commentaires qui se trouvent au sein d'une fonction, et la justification qui pourrait en être donnée .
    c'est vrai mais je vais prendre un exemple tout simple avec java (auquel je suis confronté en ce moment), c'est le design pattern des factory et franchement sans commentaire dans les fonctions bah je dirais " Pfiou " parce que des classes qui instancient des classes on peut vite être perdu. Mais bon ce commentaire ne regarde que moi

  2. #282
    Expert éminent
    Avatar de Matthieu Vergne
    Homme Profil pro
    Consultant IT, chercheur IA indépendant
    Inscrit en
    Novembre 2011
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant IT, chercheur IA indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2 272
    Points : 7 800
    Points
    7 800
    Billets dans le blog
    3
    Par défaut
    Le principe des design pattern est la réutilisation. Quand tu maitrise le pattern, si tu le revois ailleurs tu n'as pas besoin de doc pour le comprendre, car tu connais déjà le pattern. La doc est toujours la bienvenue, mais commenter le code en lui même n'a de sens (et encore) que pour ceux qui ne connaissent pas le pattern. Et là ça revient à poser la question : est-ce que tu codes pour des débutants ou des pros ? Donc ça revient à faire la différence entre commentaires et tutoriels. Rien ne t'empêche d'écrire (dans la doc) que tu utilises un design pattern particulier et renvoyer à la page Wikipedia qui décrit le pattern en question, mais tu vas pas tout recommenter à chaque fois que tu réutilises le même pattern.

  3. #283
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 122
    Points : 128
    Points
    128
    Par défaut
    Citation Envoyé par Matthieu Vergne Voir le message
    Le principe des design pattern est la réutilisation. Quand tu maitrise le pattern, si tu le revois ailleurs tu n'as pas besoin de doc pour le comprendre, car tu connais déjà le pattern. La doc est toujours la bienvenue, mais commenter le code en lui même n'a de sens (et encore) que pour ceux qui ne connaissent pas le pattern. Et là ça revient à poser la question : est-ce que tu codes pour des débutants ou des pros ? Donc ça revient à faire la différence entre commentaires et tutoriels. Rien ne t'empêche d'écrire (dans la doc) que tu utilises un design pattern particulier et renvoyer à la page Wikipedia qui décrit le pattern en question, mais tu vas pas tout recommenter à chaque fois que tu réutilises le même pattern.
    je dirais ni l'un ni l'autre je code pour des clients qui ont un/des besoins et certains d'entre eux ont un droit de regard sur le code. Ensuite, les pattern, il y en a beaucoup et même si aujourd'hui je me considère comme un développeur confirmé, il y a des moment ou je me fais quelque cheveux blanc en lisant du code... Apres je suis d'accord avec toi, en réutilisant ce pattern c'est plus simple, mais il y a toujours un début et découvrir un nouveau concept/techno/language avec des commentaires ( utiles ) c'est quand même mieux.

  4. #284
    Membre habitué
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2013
    Messages : 76
    Points : 143
    Points
    143
    Par défaut
    Citation Envoyé par bedomon Voir le message
    Apres je suis d'accord avec toi, en réutilisant ce pattern c'est plus simple, mais il y a toujours un début et découvrir un nouveau concept/techno/language avec des commentaires ( utiles ) c'est quand même mieux.
    Après, ton code est là pour faire découvrir de nouvelles choses ou répondre à un besoin?

    Je commente un code type tuto, mais je documente un code "pro".
    Et une bonne documentation demande bien plus d'effort que de mettre des commentaires.

  5. #285
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Conséquence commentaires : Lenteur, prise de place ?
    Bonjour,

    Je voudrais poser une question sur les conséquences pour le fonctionnement d'un code des commentaires :

    - Cela risque-t-il d'occuper de la place mémoire au détriment du code lui-même ?

    - Cela ralentit-t-il le code ?

    Merci d'avance.

  6. #286
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 632
    Points : 30 711
    Points
    30 711
    Par défaut
    A priori, un commentaire est purement et simplement ignoré par la plupart des langages.

    C'est comme s'il n'y avait strictement rien

  7. #287
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par koala01 Voir le message
    A priori, un commentaire est purement et simplement ignoré par la plupart des langages.

    C'est comme s'il n'y avait strictement rien
    Merci, donc si l'usage des commentaires n'obere pas la qualité du programme, finalement il y a plusieurs réponse à la question posée en fonction des nécessités et capacités de chacun, ainsi que de la destination du code :

    - milieu éducatif, où l'on vous demande d'expliquer vos actions
    - Travail en équipe
    - Taille du code et votre propre capacité intellectuelle et mémorielle
    - volonté de confidentialité du code , où à l'inverse, avant compilation, un programme annexe peut être créé pour, non-seulement effacer tout commentaire, mais en plus créer une table d'équivalence à part et remplacer toutes variables et nom de fonctions avec des Lettres et chiffres aléatoires.

  8. #288
    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 : 55
    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 466
    Points
    28 466
    Par défaut
    Citation Envoyé par koala01 Voir le message
    A priori, un commentaire est purement et simplement ignoré par la plupart des langages.

    C'est comme s'il n'y avait strictement rien
    ils pénalisent (pas forcément de façon notable) le chargement de tous les langages interprétés. Que ce soit côté serveur (PHP) ou côté client (Javascript) avec un impact sur leur téléchargement dans ce dernier cas.

  9. #289
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    ils pénalisent (pas forcément de façon notable) le chargement de tous les langages interprétés. Que ce soit côté serveur (PHP) ou côté client (Javascript) avec un impact sur leur téléchargement dans ce dernier cas.
    Dans ces conditions, je me demande pourquoi la compilation n'ignore pas tout simplement les commentaires en ne les intégrant pas...

  10. #290
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 632
    Points : 30 711
    Points
    30 711
    Par défaut
    Citation Envoyé par ScannerTahiti Voir le message
    Dans ces conditions, je me demande pourquoi la compilation n'ignore pas tout simplement les commentaires en ne les intégrant pas...
    Les langages compilés ignorent généralement purement et simplement les commentaires.

    Mais, si tu mets des commentaires dans un code javascript ou HTML, par exemple, les commentaires seront envoyés "avec le reste du code" au client.

    Il faudra donc le temps qu'ils soient transmis, même si l'interpréteur les laissera "simplement" tomber dans la plupart des cas

  11. #291
    Expert éminent
    Avatar de Matthieu Vergne
    Homme Profil pro
    Consultant IT, chercheur IA indépendant
    Inscrit en
    Novembre 2011
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant IT, chercheur IA indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2 272
    Points : 7 800
    Points
    7 800
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par ScannerTahiti Voir le message
    Merci, donc si l'usage des commentaires n'obere pas la qualité du programme, finalement il y a plusieurs réponse à la question posée en fonction des nécessités et capacités de chacun, ainsi que de la destination du code :

    - milieu éducatif, où l'on vous demande d'expliquer vos actions
    - Travail en équipe
    - Taille du code et votre propre capacité intellectuelle et mémorielle
    - volonté de confidentialité du code , où à l'inverse, avant compilation, un programme annexe peut être créé pour, non-seulement effacer tout commentaire, mais en plus créer une table d'équivalence à part et remplacer toutes variables et nom de fonctions avec des Lettres et chiffres aléatoires.
    Dans le dernier cas, on parle d'obfuscation de code. Il y a des techniques pour ça (qui vont plus loin que juste renommer les éléments {^_^}).

  12. #292
    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 : 55
    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 466
    Points
    28 466
    Par défaut
    Citation Envoyé par ScannerTahiti Voir le message
    Dans ces conditions, je me demande pourquoi la compilation n'ignore pas tout simplement les commentaires en ne les intégrant pas...
    car un code interprété n'est pas compilé (ou alors "juste à temps").

    ceci dit il existe des compresseurs, pour Javascript par exemple UglifyJS permet de réécrire un code javascript espacé et commenté en un gros pâté illisible mais au fonctionnement identique.

    Code javascript : 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
    21
    22
    23
    24
     
    /**
     * Exemple pas très util mais bon c'est pour l'exemple
     *
     * quel est le maximum entre 3 et le minimum entre 1 et 2 
     */
     
    /**
     * Détermine le minimum entre les deux termes
     */
    function min(premierTerme, secondTerme) {
    	if (premierTerme < secondTerme)
    	  return premierTerme;
      return secondTerme;
    }
     
    /**
     * Détermine le maximum entre les deux termes
     */
    function min(premierTerme, secondTerme) {
    	return (premierTerme > secondTerme ? premierTerme : secondTerme);
    }
     
    console.log(max(3, min(1, 2)));

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    function min(n,i){return i>n?n:i}function min(n,i){return n>i?n:i}console.log(max(3,min(1,2)))

    on peut aussi réindenter le code, bien qu'on ne retrouve évidemment pas les commentaires et les noms de variable
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function min(n, i) {
        return i > n ? n : i;
    }
     
    function min(n, i) {
        return n > i ? n : i;
    }
     
    console.log(max(3, min(1, 2)));

  13. #293
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Merci à tous pour vos réponses si concises, cela fait vraiment plaisir.
    autodidacte de 55 ans retiré des affaires ( petites), mon parcours de programmation démarre avec ...multiplan (sur un Amstrad 512..), puis avec un petit prog Génial qui s'appelait Q&R permettant de dessiner, créer une base de donnée multicritères très performante, Excel, ou Publisher pour des petites pages Web, et multe paramétrages de prog comptable, financier et commerciaux.
    Intéressé par la bourse, je suis entré dans la véritable programmation, en travaillant sur le Forex avec le Mql Metaquote a base de C#.
    Inutile de vous dire qu'il ne s'agissait plus du tout de la même chose, et après m'être envoyé un manuel de 1000 pages (en anglais technique of course), je me suis lancé il y a un an aujourd'hui dans la conception de mon propre code qui a actuellement près de 7000 lignes.
    Alors , seul et sans aide depuis mon ïle, j'ai dû surmonter quelques difficultés et ce ne sont pas les forums forex qui veulent vous aider.. d'où ma réelle reconnaissance devant vos réponses.. en me demandant pourquoi diable je ne vous ai pas sollicité lorsque je m'arrachais les cheveux avec l'enchevêtrement de mes Arrays 4D..
    D'ailleurs je me demandais si l'un des professionnels ici, accepteraient de jeter un oeil sur mon travail pour que j'ai une idée de ce que j'ai fait. ( en regardant une seule fonction centrale, genre 40 lignes par exemple.), enfin au cas où.. et si oui, me dire où la poster alors.

    Alors, encore une fois merci à tous.

  14. #294
    Expert éminent
    Avatar de Matthieu Vergne
    Homme Profil pro
    Consultant IT, chercheur IA indépendant
    Inscrit en
    Novembre 2011
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant IT, chercheur IA indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2 272
    Points : 7 800
    Points
    7 800
    Billets dans le blog
    3
    Par défaut
    N'hésite pas à chercher via Google aussi, tu peux trouver pas mal d'aide via les sites communautaires anglais si la langue de Shakespeare ne t'effraie pas, comme stackoverflow. Beaucoup de réponses sont déjà disponibles sur le Web, il s'agit souvent de trouver la bonne requête à filer à Google.

    Cela dit ce sujet est sur les commentaires et leur relative utilité, donc si tu as d'autres soucis n'hésite pas à voir les autres sujets sur le forum, voire à ouvrir les tiens.

  15. #295
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Pardon pour être sorti du cadre, j'avais juste le sentiment que le sujet ne permettait pas d'avancer vraiment d'autres généralités .

    Pour info, je vais indiquer comment personnellement et intuitivement , j'ai utilisé les commentaires .( intuitivement en lisant des codes par ailleurs et en déduisant deci delà des systèmes pour ne pas tomber dans des travers observés).

    - j'essaye tout d'abord de bien baptiser mes fonctions pour que leur destinations restent explicites.
    - de mêmes pour mes variables pour lesquelles j'ai utilisé un préfixe. on sait que visuellement la 1ere et dernière lettre d'un mot permet presque de le situer, aussi ce préfixe démarrant toujours par un a, me fait repérer immédiatement qu'il s'agit d'une variable, la seconde si il s'agit d'une Array-t-,ou si sa valeur est transmise par la fonction elle-même-f- ( F31.DonneNom(afs.Poste);etc.., et la 3eme si il s'agit d'une valeur bool, string, double, int...
    Quand je lis, << F31.DonneNom("Directeur") >>, je sais facilement que c'est une fonction qui devra me renvoyer le nom (string) du directeur : "Durand", quand je lis la fonction elle même <<F31.DonneNom(afs.Poste)>>, je sais que je vais recevoir de l'exec une valeur pour une variable(a), transmise par l'exec(f) et qu'elle sera un string "s" qui désignera le "poste" occupé par la personne dont le nom est demandé.

    - j'ai aussi ensuite affecté un préfixe à chaque fonction . La lettre F, et un code chronologique . Ce F, m'attire les yeux directement pour m'indiquer qu'il s'agit d'une fonction , comme le a des variables, ou me permet de le passer quand je survole en l'excluant directement sans lire plus avant.
    le code chrono me permet de créer un répertoire chrono annexe, et aussi d'insérer pour chaque fonction des bool flag # d'alerte et d'Erreur, qui me permettent de contrôler l'exactitude des calculs demandées et l'absence de #error de codif durant la conception de chaque fonction, désactivant ce flag dès que je passe à la création de la fonction suivante.
    if(Fg31){Alert("afs.Personnage : ",afs.Personnage);}

    Cette primaire organisation me permet en réalité de me passer de beaucoup de commentaires. En étant néophite, et ayant une faible mémoire, il me fallait dès le départ trouver un moyen de ne pas me noyer, et au bout de 7000 lignes on l'est forcément , en tous cas moi oui , et pléthore de commentaires à lire en plus n'arrangerait rien à mon sens.

    je n'utilise en fait que peu de commentaires ( pour usage personnel je le rappelle) :

    - Des commentaires "entête" de certaines fonctions intermédiaires obscures qui en font la synthèse.

    - des commentaires "penses bêtes " provisoires durant l'écriture que je supprime quand la fonction est terminée.

    - des commentaires avec un sigle "!", important , quand il s'agit d'une construction à ne pas modifier bien qu'elle paraisse compliquée, mais impérative afin d'éviter de provoquer des dégats collatéraux.

    - D'un commentaire //zzz pour toute ligne que je souhaite revoir absolument à la fin du programme afin de juger de sa réelle pertinence à ce moment là et qui sera effacer chose faite. ( un balayage de recherche des zzz final m'y mènera directement, même un an après comme c'est mon cas)

    -d'un commentaire //bloquant, derrière toute ligne qui provoque l'interruption volontaire du programme, afin de retrouver celle qui pourrait être déclenchée intempestivement le cas échéant.

    - enfin, de commentaires , style lettrage de comptabilité, pour gérer spontanément de longues suites d'accolades . ( très amateur , mais très efficace quand vos yeux sont usés d'une journée d'écran).
    {//a {//b, ouverture et }//az }//bz ,clôture .


    En y repensant, il me semble que si quelqu'un devait passer derrière moi, bien que tout ait été prévu pour mon seul usage, je pense qu'en laissant juste un codicille sur les conventions utilisées, il n'aurait aucun problème, d'ailleurs même sans codicille, il n'aurait aucun mal à déduire de lui-même ces conventions en très peu de temps.

    Au milieu des professionnels que vous êtes, voici donc la méthode syteme D d'un amateur..

  16. #296
    Expert éminent
    Avatar de Matthieu Vergne
    Homme Profil pro
    Consultant IT, chercheur IA indépendant
    Inscrit en
    Novembre 2011
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant IT, chercheur IA indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2 272
    Points : 7 800
    Points
    7 800
    Billets dans le blog
    3
    Par défaut
    Pour les conventions de nommage des variables et fonctions, c'est un autre débat.

    Pour tes conventions de commentaire :

    - tes commentaires entête sont typiquement ce qu'on appelle de la documentation, où on précise les entrées/sorties et les quelques particularités de la fonction si besoin. En Java ces entêtes utilisent le format Javadoc, et certains éditeurs te permettent de générer automatiquement la structure de l'entête, de façon à ne plus avoir qu'à remplir.

    - remplace tes "zzz" par des "todo", car en plus d'être plus explicite (todo = to do, en anglais, qui veut dire "à faire") c'est relativement commun (donc même les nouveaux devraient comprendre tout de suite) et certains éditeurs identifient les commentaires de ce style, comme Eclipse par exemple, ce qui permet de les marquer ou de les lister. Plus simple donc pour les gérer dans des gros projets. "fixme" est une autre variante, mais qui identifie des choses qui doivent être faite pour que ça marche, donc plus importante. "zzz" est aussi utilisé (je me rappelle que ce sont les 3 types de commentaires qui sont reconnus de base dans Eclipse) mais c'est quand même bien moins expressif que les précédents.

    - pour tes commentaires "bloquant" je n'en vois pas l'utilité, car si j'ai bien compris, tu met ça après une génération explicite d'exception ? Le fait de voir que tu génères une exception est suffisamment explicite pour comprendre que le programme n'ira pas plus loin s'il passe par là, sinon celui qui lit le code ne connaît pas le langage... sinon j'ai pas compris comment tu utilises ce commentaire.

    - pour les {//a...}//az, si tu as besoin d'identifier quelle accolade correspond à quelle autre, pour moi ça traduit une construction trop compliquée que tu peux simplifier en créant des fonctions. Si tu as beaucoup d'accolades, c'est typiquement que tu as beaucoup de lignes, tu as donc sûrement plusieurs étapes que tu peux découper en fonctions spécifiques, nommées de manière explicite. Et pour chaque étape, tu as des sous-étapes (accolades de plus bas niveau) que tu peux aussi factoriser en fonction bien nommée, etc. À mon avis, mieux vaut beaucoup de petites fonctions claires et concises avec un nom explicite que des ensembles de structures imbriquées les unes dans les autres, qu'on a du mal à suivre et ou il faudra typiquement mettre des commentaires pour expliquer ce qu'on fait, alors qu'on peut remplacer ça par des appels de fonction qui ont des noms suffisamment explicites pour ne pas avoir besoin de commentaires pour expliquer quoi que ce soit de plus.

  17. #297
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Matthieu Vergne Voir le message
    Pour les conventions de nommage des variables et fonctions, c'est un autre débat.

    - pour tes commentaires "bloquant" je n'en vois pas l'utilité, car si j'ai bien compris, tu met ça après une génération explicite d'exception ? Le fait de voir que tu génères une exception est suffisamment explicite pour comprendre que le programme n'ira pas plus loin s'il passe par là, sinon celui qui lit le code ne connaît pas le langage... sinon j'ai pas compris comment tu utilises ce commentaire.

    .
    Je ne suis pas trop d'accord sur le fait que les conventions de nommage de variables et fonctions concernent un autre débat, il me semble au contraire que de l'un dépende l'autre grandement.
    J'ai notamment lu pas mal de code russe, dont la spécificité ( je ne connais que ceux du Forex) est d'utiliser des variables absconses , avec des Arrays imbriquées, se servant de #define encore moins explicites pour leurs références et de dérouler des lignes de codes et de fonctions dont un seul fil d'Ariane est livré à la toute dernière ligne.
    L'usage de nombreux commentaires dans ce type de code devient beaucoup plus justifié.( Bien qu'ils n'en usent qu'avec Parcimonie, Parcimonie étant un Russe particulièrement austère..)

    Pour le // bloquant. Comme il s'agit de prise de risques financiers; le code prévoit qu'en certaines circonstances, aucune autre intervention automatique sur le marché ne puisse se produire sans qu'au préalable une intervention manuelle de l'utilisateur n'ait réactivé le code. Il existe quelques lignes de ce genre, disséminées dans diverses librairies annexes et c'est vrai que cela fait un peu doublon, puisque la fonction qui générerait cela génère un message en s'identifiant.. mais c'était la crainte d'avoir à rechercher dans la masse le trublion, pouvoir faire rapidement un balayage des //bloquant me rassure un peu en fait. C'est un principe de précaution face à la peur d'imaginer à avoir à rechercher une ligne comme cela. Pas très invasif en réalité..

    Pour les accolades , je suis entièrement d'accord, quoique.. dans le cas de tris conditionnels mélangeant, des if, while ou switch() au milieu de différents niveaux d'Arrays 4D, et dont la position référentielle de la première dimension de l'Array est relative pour ce tri précis, il devient important que cela concerne une seule fonction, car le résultat devra être repris avec le même ordre référentiel...
    prenons une Arrays de prix de légumes, double avd.légume[nom][type][pays ][saison]; et un utilisateur qui pourra modifier sa sélection des légumes concernées pendant le fonctionnement du prog.
    si il choisit asperge, épinard, haricot, alors valeur des ref respective : 0,1,2
    puis il choisit épinard, haricot , leurs ref deviennent : 0,1

    Pour légume[i][t][p][s] , chaque légume n'est plus à la même place dans " i" et dans ce cas là , il parait plus simple d'aller au bout de la fonction, avant de passer à une autre fonction qui devra traiter de même la variable légume[i][t][p][s] dans le même ordre relatif.

    ce petit "lettrage" me parait être une faible pollution à payer dans ces cas en regard du temps économisé.

    Mais je vous l'accorde , l'idéal étant de séquencer en fonction plus lisibles chaque fois que cela est plus simple.

  18. #298
    Expert éminent
    Avatar de Matthieu Vergne
    Homme Profil pro
    Consultant IT, chercheur IA indépendant
    Inscrit en
    Novembre 2011
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant IT, chercheur IA indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2 272
    Points : 7 800
    Points
    7 800
    Billets dans le blog
    3
    Par défaut
    Pour le fait que les pratiques des commentaires dépendent des pratiques de conventions de nommage, je suis tout à fait d'accord, on peut même prendre en compte le langage, qui peut permettre une plus ou moins grande expressivité, et même d'autres choses encore. Mais le fait est que dans ce débat on se concentre sur les commentaires. Libre à toi de faire un détour du côté des conventions de nommage, mais ça doit rester dans l'objectif de parler des commentaires (sinon ça peut partir dans tous les sens). Les conventions de nommage ont aussi leurs propres trolls et autres joyeuseries qui peuvent pourrir un topic, faudrait pas ouvrir trop le sujet sur des sujets périphériques au point qu'on n'y voit plus le sujet principal. Tu peux ouvrir un sujet pour ça si tu veux, mais ce sujet ici a son propre topic. C'était ce que je voulais dire par "c'est un autre débat" {^_^}.

    Pour le balayage des bloquants, les éditeurs avancés comme Eclipse te permettent de chercher les utilisations de fonctions spécifiques. Si tu utilise une fonction particulière pour ça, un bon éditeur aidera tout aussi bien que tes bloquants, sans te forcer à faire doublon. Faut travailler avec les bons outils comme on dit. Tes "bloquant" sont un outil, mais il y a plus propre.

    Pour le coup du gros array où tu dois faire attention au parcours... je ne peux m'empêcher de penser que tu peux simplifier la chose. Un array ça reste très basique, il y a des structures plus avancées telles que des listes chaînées, tables de hachage et autres joyeuseries qui permettent d'ordonner le code en considérant différentes optimisations. Plutôt que de faire ton parcours à la main, est-ce qu'un peu de ces structures ne te permettrait pas de préparer le terrain en quelques lignes de code supplémentaire avant, de façon à pouvoir simplifier grandement le traitement suivant et ainsi pouvoir le factoriser ? T'es pas obligé de répondre et je dis pas que dans ton cas tu peux assurément le faire autrement. Je sais qu'il y a des cas complexes, mais mon expérience me dit que ce n'est que quand tu cherches des optimisations vraiment poussées (que tu as de fortes contraintes de performances par exemple) que tu as besoin de complexité, autrement tu peux organiser ton code de 1001 façons, et il y en a généralement des simples dans le tas, question d'organisation et de découpage des tâches (ce qui n'est pas toujours facile non plus cela dit).

    C'est pour ça que, de mon point de vue, les commentaires (et je ne parle pas de tutos ou de documentation) sont superflus si c'est pour dire ce que fait le code. Parce qu'on peut toujours le simplifier assez pour le rendre aussi compréhensible que des commentaires. Sinon c'est qu'on a des contraintes qui nous poussent à la complexité (e.g. perfs) et là ce qui est important c'est de dire pourquoi on fait les choses ainsi, de façon à ce que le suivant ne fasse pas de bêtise s'il doit mettre les mains dedans.

  19. #299
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 1
    Points : 3
    Points
    3
    Par défaut Doc
    Tout programmeur doit savoir commenter son programme.
    C'est obligatoire qu'il soit petit ou grand...
    Pourquoi ? car l'on peut créer un petit programme en entreprise mais qui deviendra grand dans une entreprise ex: Hum un petit moteur d'un ERP et on rajoute des modules avec le cahier des charges et le cahier des charges augmente et l'on rajoute des modules ...
    Vous tomber malade plouf sans commentaire ni documentation votre remplacent sera dans la panade...
    Commenter un programme c'est comme mettre sa ceinture de sécurité quand on monte dans une voiture.
    Il faut le faire dès le début que ce soit un petit ou un grand programme.
    Eclipse click projet créer Javadoc.

    Jean Paul Jourdan

  20. #300
    Expert éminent
    Avatar de Matthieu Vergne
    Homme Profil pro
    Consultant IT, chercheur IA indépendant
    Inscrit en
    Novembre 2011
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant IT, chercheur IA indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2 272
    Points : 7 800
    Points
    7 800
    Billets dans le blog
    3
    Par défaut
    Amen

    Tout programmeur doit savoir bien écrire son programme.
    C'est obligatoire qu'il soit petit ou grand...
    Pourquoi ? car l'on peut créer un petit programme en entreprise mais qui deviendra grand dans une entreprise ex: Hum un petit moteur d'un ERP et on rajoute des modules avec le cahier des charges et le cahier des charges augmente et l'on rajoute des modules ...
    Vous tomber malade plouf avec un programme abscons votre remplacent sera dans la panade...
    Bien écrire un programme c'est comme mettre sa ceinture de sécurité quand on monte dans une voiture.
    Il faut le faire dès le début que ce soit un petit ou un grand programme.
    Eclipse click droit rename/extract method.

    Les recommandations passe-partout c'est bon, tout le monde a compris je crois {'^_^}. Savoir si les commentaires c'est bien en général, on sait que c'est oui mais c'est pas le sujet du débat. On se préoccupe de savoir ce que ça vaut si l'attention est avant tout portée sur la clarté du code. Est-ce que ça vaut toujours le coup ou c'est passer beaucoup de temps pour pas grand chose de plus (voire plus de problèmes) ?

Discussions similaires

  1. Code Java bien écrit ?
    Par abysr dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 24/03/2015, 17h17
  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, 15h22
  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, 13h12
  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, 17h23
  5. [Système] Exécution code php écrit via fwrite()
    Par Torpedox dans le forum Langage
    Réponses: 4
    Dernier message: 26/01/2007, 18h09

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