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. #141
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par miltone Voir le message
    De plus le folding est évident et l'ouverture et la fermeture sont en surbrillance sur la même ligne (puisque c'est la même méthode ca parait plus logique).
    L'idée d'aligner le symbole d'ouverture avec le symbole de fermeture d'un bloc est pour moi tout aussi "logique" que l'idée d'aligner la majuscule avec le point dans une phrase
    .

    Bref, ce n'est une convention
    .

    Et comme toutes les conventions, elle n'a aucun autre but que celui d'uniformiser les usages
    .

    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  2. #142
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Août 2011
    Messages : 342
    Points : 1 091
    Points
    1 091
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    L'idée d'aligner le symbole d'ouverture avec le symbole de fermeture d'un bloc est pour moi tout aussi "logique" que l'idée d'aligner la majuscule avec le point dans une phrase
    .

    Bref, ce n'est une convention
    .

    Et comme toutes les conventions, elle n'a aucun autre but que celui d'uniformiser les usages
    .

    Il a quand même raison sur l'alignement. Dans ma jeunesse cette forme d'alignement était plutôt la norme d'ailleurs, et je pense que c'était effectivement plus lisible. Et tu as beau dire ce que tu veux, rechercher les paires d'accolades en se fiant à un alignement par colonne et quand même beaucoup plus logique que chercher en bout de ligne à une distance inconnue. Même si c'est beaucoup plus verbeux et je conçois facilement le pourquoi de l'accolade en bout de ligne.

    Maintenant on pourrait aussi argumenter que si le nombre d'imbrications reste raisonnable (ce qui est un critère de qualité, au passage), ces problèmes de formatage sont nettement moins importants.

  3. #143
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par GPPro Voir le message
    Il a quand même raison sur l'alignement. Dans ma jeunesse cette forme d'alignement était plutôt la norme d'ailleurs, et je pense que c'était effectivement plus lisible. Et tu as beau dire ce que tu veux, rechercher les paires d'accolades en se fiant à un alignement par colonne et quand même beaucoup plus logique que chercher en bout de ligne à une distance inconnue. Même si c'est beaucoup plus verbeux et je conçois facilement le pourquoi de l'accolade en bout de ligne.

    Maintenant on pourrait aussi argumenter que si le nombre d'imbrications reste raisonnable (ce qui est un critère de qualité, au passage), ces problèmes de formatage sont nettement moins importants.
    Dans ma jeunesse, j'ai connu beaucoup de convention de présentation du code. Aucune n'étant objectivement meilleure qu'une autre. Pour moi, c'est surtout une question d'habitude. Quand on pratique majoritairement un seul langage/projet, on s'habitue a une convention particulière et les autres conventions paraissent "anormales". Quand on jongle quotidiennement avec différents langages, projets et conventions, on finit par trouver que ce n'est qu'un détail.

    Allman style formatting/indenting uses broken brackets.
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int Foo(bool isBar)
    {
        if (isBar)
        {
            bar();
            return 1;
        }
        else
            return 0;
    }

    Java style formatting/indenting uses attached brackets.
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int Foo(bool isBar) {
        if (isBar) {
            bar();
            return 1;
        } else
            return 0;
    }

    Kernighan & Ritchie style formatting/indenting uses linux brackets. Brackets are broken from namespaces, classes, and function definitions. Brackets are attached to statements within a function.
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int Foo(bool isBar) 
    {
        if (isBar) {
            bar();
            return 1;
        } else
            return 0;
    }

    Stroustrup style formatting/indenting uses stroustrup brackets. Brackets are broken from function definitions only. Brackets are attached to namespaces, classes, and statements within a function. This style frequently is used with an indent of 5 spaces.
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int Foo(bool isBar) 
    {
         if (isBar) {
              bar();
              return 1;
         } else
              return 0;
    }

    Whitesmith style formatting/indenting uses broken, indented brackets. Class blocks and switch blocks are indented to prevent a 'hanging indent' with switch statements and C++ class modifiers (public, private, protected).
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int Foo(bool isBar) 
        {
        if (isBar)
            {
            bar();
            return 1;
            }
        else
            return 0;
        }

    Banner style formatting/indenting uses attached, indented brackets. Class blocks and switch blocks are indented to prevent a 'hanging indent' with switch statements and C++ class modifiers (public, private, protected).
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int Foo(bool isBar) {
        if (isBar) {
            bar();
            return 1;
            }
        else
            return 0;
        }

    GNU style formatting/indenting uses broken brackets and indented blocks. This style frequently is used with an indent of 2 spaces.
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int Foo(bool isBar)
    {
      if (isBar)
        {
          bar();
          return 1;
        }
      else
        return 0;
    }

    Linux style formatting/indenting uses linux brackets. Brackets are broken from namespace, class, and function definitions. Brackets are attached to statements within a function. Minimum conditional indent is one-half indent. If you want a different minimum conditional indent use the K&R style instead. This style works best with a large indent. It frequently is used with an indent of 8 spaces.
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int Foo(bool isBar)
    {
            if (isFoo) {
                    bar();
                    return 1;
            } else
                    return 0;
    }

    Horstmann style formatting/indenting uses run-in brackets, brackets are broken and allow run-in statements. Switches are indented to allow a run-in to the opening switch block. This style frequently is used with an indent of 3 spaces.
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int Foo(bool isBar)
    {  if (isBar)
       {  bar();
          return 1;
       } else
          return 0;
    }

    "One True Brace Style" formatting/indenting uses linux brackets and adds brackets to unbracketed one line conditional statements. In the following example brackets have been added to the "return 0;" statement. The option --add-one-line-brackets can also be used with this style.
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int Foo(bool isBar)
    {
        if (isFoo) {
            bar();
            return 1;
        } else {
            return 0;
        }
    }

    Pico style formatting/indenting uses run-in brackets, opening brackets are broken and allow run-in statements. The closing bracket is attached to the last line in the block. Switches are indented to allow a run-in to the opening switch block. The style implies keep-one-line-blocks and keep-one-line-statements. This style does not support multiple-line brackets. If add-brackets is used they will be added as one-line brackets. This style frequently is used with an indent of 2 spaces.
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int Foo(bool isBar)
    {  if (isBar)
       {  bar();
          return 1; }    
        else
          return 0; }

    Python/Lisp style formatting/indenting uses attached brackets, opening brackets are attached at the end of the statement. The closing bracket is attached to the last line in the block. The style implies keep-one-line-statements but NOT keep-one-line-blocks. This style does not support one-line brackets. If add-one-line-brackets is used they will be added as multiple-line brackets.
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int Foo(bool isBar) {
        if (isBar) {
            bar()
            return 1; }
        else
            return 0; }


    (source: Artistic Style code formatter)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #144
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 25
    Points : 12
    Points
    12
    Par défaut Danfas
    je ne met quasiment aucun commentaire... mes lignes de code sont de veritables romans... le nom des composants, variables et autres fonctions sont de veritables post-it... meme un vieux codes de plusieurs mois je replonge dedans comme si je l'avais pondu la veille. Alors bien sur les flemmards de l'ecriture trouverons mes libellés très long et inutiles... mais c'est rudement efficace. Et l'efficacité est un plus en informatique.
    FN_transforme_Heures_en_Secondes() et cet exemple est plutot minimaliste.

    je signale que je bosse seul... et donc cela me suffit... mais j'ai déjà fait l'experience d'un tiers travaillant sur mon code. Prise en main quasiment immédiate (tout relatif bien entendu) pas eu besoin d'explication.

  5. #145
    Membre extrêmement actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 749
    Points : 2 876
    Points
    2 876
    Par défaut
    Citation Envoyé par JELUCA Voir le message
    FN_transforme_Heures_en_Secondes() et cet exemple est plutot minimaliste.
    Si c'est ce que tu fais de plus court, je n'ose pas imaginer ce que ça donne sur des trucs complexes...

    Il faut que le code soit clair (et ça prend en compte les noms de variables / methodes simples ET explicites) et commenté (pensez a ceux qui prendront le code apres vous), et documenté.

  6. #146
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par DevTroglodyte Voir le message
    Si c'est ce que tu fais de plus court, je n'ose pas imaginer ce que ça donne sur des trucs complexes...

    Il faut que le code soit clair (et ça prend en compte les noms de variables / methodes simples ET explicites) et commenté (pensez a ceux qui prendront le code apres vous), et documenté.
    En longueur ca ne prend jamais plus du double de l'exemple.... et je préfère écrire des bouts de code très court (fonctions , procédures etc) qui se comprennent en quelques secondes... et mon code subit une mise en page assez rigoureuse... je ne comprends pas pourquoi nommer une variable avec un nom esoterique ou compressé et mettre un long commentaire pour expliquer son utilisté

  7. #147
    Membre extrêmement actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 749
    Points : 2 876
    Points
    2 876
    Par défaut
    Citation Envoyé par JELUCA Voir le message
    En longueur ca ne prend jamais plus du double de l'exemple.... et mon code subit une mise en page assez rigoureuse... je ne comprends pas pourquoi nommer une variable avec un nom esoterique ou compressé et mettre un long commentaire pour expliquer son utilisté
    Parce que devoir faire des scrolls latéraux pour lire du code, c'est pas terrible ? J'ai jamais parlé de var & fct aux noms ésotériques à propos, mais de noms clairs et simples (par opposition à l'écriture d'un roman en nommage d'une fonction...)

  8. #148
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par DevTroglodyte Voir le message
    Parce que devoir faire des scrolls latéraux pour lire du code, c'est pas terrible ? J'ai jamais parlé de var & fct aux noms ésotériques à propos, mais de noms clairs et simples (par opposition à l'écriture d'un roman en nommage d'une fonction...)
    pour les noms esoteriques je ne faisais pas reference à ton message mais à des bouts de code que j'ai rencontré ou sans commentaire, il est impossible de savoir de quoi il retourne... meme si tu ne sais pas a quoi sert mon programme à la lecture du code tu devines l'objectif... et ca le tiers qui a travaillé sur une de mes applications a prouvé d'une certaine manière l'efficacité de cette voie.

    Pour les scrolls lateraux je n 'en fais jamais... la mise en page est essentielle?

    mais au final chacun fait bien comme il veut si ca lui fait plaisir...

  9. #149
    Membre extrêmement actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 749
    Points : 2 876
    Points
    2 876
    Par défaut
    Citation Envoyé par JELUCA Voir le message
    pour les noms esoteriques je ne faisais pas reference à ton message mais à des bouts de code que j'ai rencontré ou sans commentaires impossible de savoir de quoi il retourne...
    Niveau nommage ésotérique, j'ai ouvert minecraft.jar... De superbes noms de classe

    meme si tu ne sais pas a quoi sert mon programme à la lecture du code tu devines l'objectif... et ca le tiers qui a travaillé sur une de mes applications a prouvé d'une certaine manière l'efficacité de cette voie.
    Certes, mais des noms trop longs peuvent être fatiguants à lire à la longue, voire porter à confusion (surtout en fin de journée ), d'ou l'idée de peut être plus les compacter, mais de rajouter de la doc (obligatoire imho) et du commentaire ^^

  10. #150
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par DevTroglodyte Voir le message
    Certes, mais des noms trop longs peuvent être fatiguants à lire à la longue, voire porter à confusion (surtout en fin de journée
    Tu as raison... mais si le code est bien fait pas besoin de replonger dedans... ca marche. Ou occasionnellement pour des modifs. Du coup très rapide à faire et donc pas de longues lectures et les fins de journées sont peinardes

  11. #151
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Coder est un art

    Citation Envoyé par CestPolo Voir le message
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    .......
    .......
    //fonction de validation (on passe par toutes les fonctions)
    function validateForm(form) {
      if (isNotEmpty(form.nom)) {
        if (isNotEmpty(form.prenom)) {
          if (isNotEmpty(form.num)) {
            if (isNumber(form.num)) {
              if (isNotEmpty(form.nom_voie)) {
                if (isNotEmpty(form.cp)) {
                  if (isNumber(form.cp) {
                    if (isLen5(form.cp)) {
                      if (isNotEmpty(from.ville)) {
                        if (isNotEmpty(form.tel)) {
                          if (isNumer(form.tel)) {
                            if (isLen10(form.tel)) {
                              if (isNotEmply(form.email)) {
                                if (isEmail(form.email)) {
                                  return true;
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      return false;
    }

  12. #152
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Coder est un art
    Citation Envoyé par CestPolo Voir le message
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    .......
    .......
    //fonction de validation (on passe par toutes les fonctions)
    function validateForm(form) {
      if (isNotEmpty(form.nom)) {
        if (isNotEmpty(form.prenom)) {
          if (isNotEmpty(form.num)) {
            if (isNumber(form.num)) {
              if (isNotEmpty(form.nom_voie)) {
                if (isNotEmpty(form.cp)) {
                  if (isNumber(form.cp) {
                    if (isLen5(form.cp)) {
                      if (isNotEmpty(from.ville)) {
                        if (isNotEmpty(form.tel)) {
                          if (isNumer(form.tel)) {
                            if (isLen10(form.tel)) {
                              if (isNotEmply(form.email)) {
                                if (isEmail(form.email)) {
                                  return true;
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      return false;
    }
    Et le pire c'est que ça compilera pas vu qu'il manque une parenthèse à la ligne 12... (pardon, déformation professionnelle )

  13. #153
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par GPPro Voir le message
    Il a quand même raison sur l'alignement. Dans ma jeunesse cette forme d'alignement était plutôt la norme d'ailleurs, et je pense que c'était effectivement plus lisible. Et tu as beau dire ce que tu veux, rechercher les paires d'accolades en se fiant à un alignement par colonne et quand même beaucoup plus logique que chercher en bout de ligne à une distance inconnue. Même si c'est beaucoup plus verbeux et je conçois facilement le pourquoi de l'accolade en bout de ligne.

    Maintenant on pourrait aussi argumenter que si le nombre d'imbrications reste raisonnable (ce qui est un critère de qualité, au passage), ces problèmes de formatage sont nettement moins importants.
    la mise en page est queqlue chose sur laquelle je ne lésine pas. Aeration, alignement, indentation etc... c'est plus qu'une nécessité.

  14. #154
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Points : 654
    Points
    654
    Par défaut
    Vive les grands écran pour les codes sur 50 millions de colonnes
    Je travail actuellement sur un 15 pouces on me sort un truc comme ça je pleurs.

    Et JELUCA c'est bien d'avoir des petites fonctions mais nom documenté c'est pas bien.

    Pq penser que au code, demain j'arrive pas de doc je fais la gueule ensuite j'ai envie d'un traitement j'ai x fichier de x lignes et pas de doc tenpis je fais le traitement pcq tu n'est pas la tu est partis dans une autres boites et je dois recupérer ton projet.

    Bon bah pas le choix je dev le traitement pour cause de perte de connaissance, cinq plus tard ton super projet est pourris pcq c'est blindé de redondance, que j'ai ajouté du code n'importe ou et le projet n'est plus maintenable.

    Ma démarche est simple dans proj ma co, mes compétences on s'enfou le plus important c'est la personne qui va venir sur le projet le jour ou je ne serais plus la.

  15. #155
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 107
    Points : 92
    Points
    92
    Par défaut
    Bonjour, pour moi, les commentaires doivent permettre de faire rapidement le lien entre la(les)SFD, les SFT(si elles existent) et le code. je pense que c'est le plus important pour la maintenance : savoir rapidement où se positionner pour faire une évol et comprendre l'architecture technico-fonctionnelle. mettre un commentaire avec la date et une référence à un autre document qui explique l'évol réalisée, les impacts, etc.. n'est pas mal en soi, sauf s'il y a eu trop de modifications un peu partout, car alors on rentrerait dans un autre type de casse-tête .. En résumé, pour moi les commentaires sont souvent nécessaires, mais c'est presque un métier que de les écrire ..

  16. #156
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par jouana Voir le message
    Vive les grands écran pour les codes sur 50 millions de colonnes
    Je travail actuellement sur un 15 pouces on me sort un truc comme ça je pleurs.

    Et JELUCA c'est bien d'avoir des petites fonctions mais nom documenté c'est pas bien.

    Pq penser que au code, demain j'arrive pas de doc je fais la gueule ensuite j'ai envie d'un traitement j'ai x fichier de x lignes et pas de doc tenpis je fais le traitement pcq tu n'est pas la tu est partis dans une autres boites et je dois recupérer ton projet.

    Bon bah pas le choix je dev le traitement pour cause de perte de connaissance, cinq plus tard ton super projet est pourris pcq c'est blindé de redondance, que j'ai ajouté du code n'importe ou et le projet n'est plus maintenable.

    Ma démarche est simple dans proj ma co, mes compétences on s'enfou le plus important c'est la personne qui va venir sur le projet le jour ou je ne serais plus la.
    Si on pisse du code à la va vite sans apporter un grand soin à la mise en page et aux libellés il est INCONTOURNABLE de faire une doc à côté je suis ok. Et il faut toujours faire très vite... rentabilité objectif etc... la doc et les commentaires deviennent obligatoires...

    personnellement je ne subis aucune pression, j'ai tout mon temps. Donc je me préserve pour demain. je prefere des nommages evocateurs et une belle mise en page à une perte de temps à ecrire des commentaires sans fin. Je me souviens qu on nous apprenais en ecole à faire du commentaire et de la doc... sinon on est pas un bon dev... et on veut croire que ce que l'on nous a enseigné c'est du solide. je pense que la doc est indispensable sur de grands projets ou ca brasse du personnel. Et dans ce cas ce n'est pas le pisseur de lignes qui va faire la doc.. il va juste donner rapidos les info.

    mais je comprends qu'une fonction fHrSec nécessite un petit commentaire
    tranforme les heures en secondes alors que mloi je vais mettre FN_Transforme_Heures_en_Sec au final j'ai quand meme fais moins d'ecriture

    lMaintenant si mon code doit impérativement être utilisé par un tiers, ne crois pas que je sois un âne borné il y aura les informations nécéssaire utiles et suffisantes...

  17. #157
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Points : 654
    Points
    654
    Par défaut
    Déjà tu as de la chance d'avoir le temps de faire ce que tu as a faire.
    Ensuite de bonne pratique et une rigueur te permette d'avoir un code propre la n'est pas le problème.

    C'est juste qu'il est plus simple de naviguer dans une bonne doc que dans du code.

    Ensuite perso j'essaye de limiter mes lignes à 80 colonnes petites habitude scolaire

    Et même si ça m'arrive de codé vite ça ne m’empêche pas d'avoir un code aéré, propre et compréhensible c'est juste que je pars du principe que le code reviendra a d'autre personne et que je ne peux pas leurs imposer la lecture des fichier source tout le temps.

    Après le travail collaboratif demande un peu plus, qu'un code propre a mon gout.

    La les gens qui te rejoigne on la chance de t'avoir mais demain ça sera toujours le cas?

    Le plus important en dev c'est demain pas aujourd'hui.

  18. #158
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par jouana Voir le message
    Déjà tu as de la chance d'avoir le temps de faire ce que tu as a faire.
    Ensuite de bonne pratique et une rigueur te permette d'avoir un code propre la n'est pas le problème.

    C'est juste qu'il est plus simple de naviguer dans une bonne doc que dans du code.

    Ensuite perso j'essaye de limiter mes lignes à 80 colonnes petites habitude scolaire

    Et même si ça m'arrive de codé vite ça ne m’empêche pas d'avoir un code aéré, propre et compréhensible c'est juste que je pars du principe que le code reviendra a d'autre personne et que je ne peux pas leurs imposer la lecture des fichier source tout le temps.

    Après le travail collaboratif demande un peu plus, qu'un code propre a mon gout.

    La les gens qui te rejoigne on la chance de t'avoir mais demain ça sera toujours le cas?

    Le plus important en dev c'est demain pas aujourd'hui.
    je suis d'accord avec toi pour demain quand je ne serais plus là. je pars en retraite à l'automne et je vais me lancer sous peu dans l'ecriture d'une doc à la demande de mes successeurs. Pour les rassurer.

    je developpe des appli pour une catégorie de gens qui ne touchent pas une bille sur pc... qui n'ont jamais le temps de lire de la doc... ou de suivre des formations qui ne les branchent pas... et qui gueulent quand les appli sont trop compliquées à comprendre ou à utiliser. Mes appli sont dev pour des godiches 5 étoiles. Aucune aide en ligne... rien.. aucune formation dispensée. Tu utilises mes applis de manière intuitive. En contrepartie je passe énormément de temps à les pondre. je developpe mon code de la même maniere que mes appli... pour des godiches 5 étoiles. Même ma grand mère comprendrait mais c'est anti rentable pour une société qui veut faire du benefice. Et oui ma boite ne cherche pas à faire du bénef... on mange l'argent des autres.

  19. #159
    Membre confirmé
    Avatar de Kalite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Points : 553
    Points
    553
    Par défaut
    Le code auto-documenté ?!
    Ok sur le principe. Dans la réalité c'est juste pas possible.

    Chaque personne à une compréhension des mots d'une langue qui lui est propre. Du à son histoire. Chaque développeur pourra ainsi utiliser différent mot pour définir une méthode qui effectue le même traitement.

    De plus, la maintenance et l'ajout de fonctionnalité est simplifié lorsque des phrase explique ce la méthode, fonction ou classe effectue. Surtout dans les grandes équipes ou comme certain le mentionne les niveaux sont pas tous identique.

    Expérience personnel:
    J'ai lu du code "auto-documenté" d'un développeur mathématicien. Et je peut vous dire que c'est une galère. Je ne suis pas un expert du C++ mais je suis pas mauvais. Quelque explication en commentaire c'est pas de trop. Surtout quand on utilise des algorithmes spécifiques à un métier.

  20. #160
    Membre confirmé
    Profil pro
    Retraité
    Inscrit en
    Novembre 2009
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2009
    Messages : 329
    Points : 606
    Points
    606
    Par défaut
    Non seulement j'essaye de commenter mon code mais je suis aussi devenu un fanatique de l'alignement en colonnes. Un exemple
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    static void gg_filters_update (void)
    {
      if (w_filters != NULL) {
        FILTERParams p;
        if (filters_params_get (&p) == RETURN_SUCCESS) {
          char buf[32];
          gg_set_int  (w_filter_gender ,p.gender);
          gg_set_int  (w_filter_ftype  ,p.ftype);
          gg_set_int  (w_forder        ,p.order);
          gg_set_int  (w_ripple_use_dB ,p.ripple_use_dB);
          gg_setstr_d (w_ripple  ,"%g" ,p.ripple  ,buf);
          gg_setstr_d (w_cutoff1 ,"%g" ,p.cutoff1 ,buf);
          gg_setstr_d (w_cutoff2 ,"%g" ,p.cutoff2 ,buf);
          gg_set_int  (w_cutoff_scaled ,p.cutoff_scaled);
          gtk_spin_button_set_range (GTK_SPIN_BUTTON (w_fgno) ,0.0 ,number_of_graphs ());
          gg_set_int  (w_fgno   	   ,fgno);
          gtk_spin_button_set_range (GTK_SPIN_BUTTON (w_fsetno) ,0.0 ,number_of_sets (fgno));
          gg_set_int  (w_fsetno 	   ,fsetno);
          gg_set_int  (w_fload_mode    ,p.fload_mode);
        }
      }
      ge_update_explorer ();
    }
    Pour les utilisateurs d'Emacs, une petite fonction qui facilite la tâche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    (defun pv-align (c)
      "Comme align-regexp ou align-entire sont difficiles a utiliser 
    ou ne donne pas le resultat voulu, cette fontion simple permet, 
    d'appeler align-regexp "
      (interactive  "sCaractere: ")
     (align-regexp (region-beginning) (region-end) (concat "\\(" c "\\s-*\\)") -1 0 t))
    GraceGTK: a plotting tool at https://sourceforge.net/projects/gracegtk

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