Publicité
+ Répondre à la discussion Actualité déjà publiée
Page 9 sur 9 PremièrePremière ... 56789
Affichage des résultats 161 à 171 sur 171
  1. #161
    Expert Confirmé Sénior Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    juillet 2006
    Messages
    10 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : juillet 2006
    Messages : 10 011
    Points : 12 799
    Points
    12 799

    Par défaut

    Difficile dans l'absolu de dire qu'un nom de variable est mauvais !
    Tout dépend aussi de la portée de la variable, je suis plutôt POO donc locale, membre d'instance, membre de classe, et parfois globale
    Le thème de la fonction, sa complexité (si tu as 2-3 variables, un nom très court ça peu se comprendre, si tu en as 26 évidemment A..Z c'est pas terrible)
    On voit cela souvent avec le SQL, les alias de table pour raccourcir la requête avec T1 à T10, hyper lisible !

    Toto, un classique pour tester un code vite fait, comme Foo Bar !
    Une fois que l'on sait bien utiliser la fonction, on refait au propre ! non ?

    Moi, j'adore les fautes d'orthographe comme requette
    Après, tu te traines ça comme nom de variable un peu partout !
    Pratique lorsque tu cherche un truc, et qu'il y a pas une seule fois la même chose Req, Requete, Rqt, ...

    Pour ma part, j'essaye d'avoir des fonctions assez courte et des variables nommées à part i pour mes for
    Dès que j'ai deux compteurs imbriqués (assez rare), je le nomme plus longuement pour ne pas les confondre !
    J'ai aussi un cartouche de documentation

    J'évite des variables au nom trop court (même si cela peut rendre le code plus concis), j'ai souvent vu des variables comme _t pointant sur l'objet global Translator ! personnellement, je ne suis pas fan !
    Typique aussi avec des MACRO

    Pour les préfixes façon notation hongroise, je les réserve aux appels des API Windows, tout simplement parce que j'utilise les noms des paramètres de la fonction et donc que je ne les invente pas !
    En général, en Delphi\C++Buider, je respecte juste
    T pour Type (C pour une classe C++ pure et non Delphiesque)
    A comme Arguments pour un paramètre de fonction,
    F pour Field indiquant un membre privé\protégé équivalent au m_
    C'est la convention historique de Borland Delphi
    Je n'en vois pas d'autre

    Pour mes objets, j'ai la tendance à être très verbeux, tout le monde n'aime pas comme TShaiORPersistentClassMetaDataItem,
    TShaiHardwareProviderAbstractPersistentObject ou un des mes derniers TShaiCameraActionByComputerItemList.
    Shai étant en réalité, le nom du projet ou de la lib interne

    l'ancien programmeur était plus concis TObjetItem, TPlan, TLstItems en même temps, le code n'était pas très POO, au grand max 30 classes dans tout le projet, j'ai du en écrire 300 de plus

    J'ai plein de petite classe avec une tache bien précise, je découpe beaucoup, et donc il faut trouver beaucoup de nom, parfois j'ai peu de mal, j'ai même abusé

    Je fais aussi du Franglais !

    TFacture.GetClient ou TFacture.GetLigneDeCommande,
    au lieu de GetCustomer ou Get... je sais pas comment on dit Ligne de Commande d'une Facture en anglais ? TBill.GetDetailOrder ???

    Manque de vocabulaire, et après, si personne ne comprend ou que moi-même, j'oublie, c'est une perte de temps de traduire !

    Quand tu n'as pas de spécifications, pas de règle de codage, et une transmission à 99% oral, c'est un sport d'avoir un code métier lisible et compréhensible subissant les changements de besoins et de fonctionnalités en cours de développement
    Alors si on en plus on se permet de délire comme ce qui suit.

    Donc, le pire, mais aussi le plus drôle (l'auteur ne supportait plus le projet ni la responsable, sa petite vengeance).
    Extrait d'un code dont j'ai subi la maintenance par la suite :

    Code pascal :
    1
    2
    3
    4
    function TCensure.ConstruireQui(OleTypes, OleValeurs : OleVariant; ModeOU : Boolean) : String;
    var i, NbDim : integer;
        Operateur_OuiIciTank, jointhuuuure : String; //c'est matrix voyons !!!
        LeTextounet, leFromTon, LeTe : String;

    Voilà, des jeux de mots avec le vocabulaire SQL et des références à des films !
    Ou ce code qui exprime de la mauvaise humeur du même développeur

    Code pascal :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //comme son nom l'indique !!!
     
    Function TCensure.ConvSaloperieAChierDePutainDeMerde(Per_ID : Integer) : Integer;
    begin
      ReqDeMerdeAChier.close;
      ReqDeMerdeAChier.parambyname('PER_Id').asinteger := Per_Id;
      ReqDeMerdeAChier.open;
      result := ReqDeMerdeAChier.fieldByName('TER_ID').asinteger;
      ReqDeMerdeAChier.close;
    end;



    J'avoue, j'ai récemment aussi fait une référence à un jeu vidéo de MegaDrive :

    Code :
      bool TShaiCameraRecordingByDirect::AddExtraTime(TSeconds ATimeBonus = -1); // Tribute to Wiz 'n' Liz !
    Cela reste sobre et le nommage correspond à la fonctionnalité souhaité, ajouter du temps supplémentaire à un enregistrement automatique déjà en route !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

    Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié !

  2. #162
    Nouveau Membre du Club
    Homme Profil pro Julien
    Étudiant
    Inscrit en
    mai 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Nom : Homme Julien
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2012
    Messages : 37
    Points : 27
    Points
    27

    Par défaut

    Le pire est lorsque tu te retrouves avec une tonne de variable (je parles du VB.NET) qui sont pas changées (TextBox34) et ça peut allé très loin ...

    Je ne dirais pas que c'est moi Je trouve ça horrible mais je continu ...

  3. #163
    Membre éclairé
    Inscrit en
    avril 2004
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : avril 2004
    Messages : 397
    Points : 372
    Points
    372

    Par défaut $res

    Pour ma part, le pire que j'ai vu est un nom de variable utilisé un peu partout dans les tests unitaires de mon projet : $res !

    Comme son nom l'indique : une variable utilisée pour stocker les résultats d'une méthode testée.

    Aucune idée sur le type de résultat retourné, sur le cas testé ou autre. J'ai eu beau me battre pour que ce genre de variable disparaisse et pourtant il est toujours autant utilisé

  4. #164
    Membre Expert Avatar de air-dex
    Homme Profil pro
    Inscrit en
    août 2010
    Messages
    1 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France

    Informations forums :
    Inscription : août 2010
    Messages : 1 030
    Points : 1 961
    Points
    1 961

    Par défaut

    Citation Envoyé par bilbonec Voir le message
    Pour ma part, le pire que j'ai vu est un nom de variable utilisé un peu partout dans les tests unitaires de mon projet : $res !

    Comme son nom l'indique : une variable utilisée pour stocker les résultats d'une méthode testée.

    Aucune idée sur le type de résultat retourné, sur le cas testé ou autre. J'ai eu beau me battre pour que ce genre de variable disparaisse et pourtant il est toujours autant utilisé
    Si le code (ou le test) en question est bien documenté et/ou bien commenté, on comprend aisément ce que "res" contient. Le nom de la variable n'est donc pas à remettre en cause.
    "Ils ne savaient pas que c'était impossible alors ils l'ont fait." Mark Twain

    Mon client Twitter Qt cross-platform Windows et Linux. (en cours de développement).

  5. #165
    Membre régulier
    Inscrit en
    avril 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : avril 2009
    Messages : 30
    Points : 83
    Points
    83

    Par défaut

    Le pire que j'ai fait, à un prof que j'aimais pas !
    Code java :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    class _{
        private int __;
     
        public _(int ___){
            __ = ___;
        }
     
        public int guessWhatImDoing(){
            if(__<=0)return 1;
            _ ____=new _(___()-1);
            return ___()*____.guessWhatImDoing();
        }
     
        public int ___(){
            return __;
        }
    }
    He ben après ça il m'aimait pas non plus ! ahahaha

    PS : c'est une factorielle volontairement compliquée !

  6. #166
    Membre émérite

    Inscrit en
    juillet 2006
    Messages
    1 400
    Détails du profil
    Informations forums :
    Inscription : juillet 2006
    Messages : 1 400
    Points : 951
    Points
    951

    Par défaut

    Mieux vaut parfois imposer au (re)lecteur de remonter dans le code que de perdre du temps à rédiger des variables dont les noms chambouleraient la remise du prix Goncourt.

  7. #167
    Membre émérite Avatar de SurferIX
    Homme Profil pro Olivier Pons
    Ingénieur développement logiciels
    Inscrit en
    mars 2008
    Messages
    436
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier Pons
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mars 2008
    Messages : 436
    Points : 906
    Points
    906

    Par défaut

    Citation Envoyé par bilbonec Voir le message
    Pour ma part, le pire que j'ai vu est un nom de variable utilisé un peu partout dans les tests unitaires de mon projet : $res !

    Comme son nom l'indique : une variable utilisée pour stocker les résultats d'une méthode testée.

    Aucune idée sur le type de résultat retourné, sur le cas testé ou autre. J'ai eu beau me battre pour que ce genre de variable disparaisse et pourtant il est toujours autant utilisé
    Euh moi j'ai presque toujours une variable nommée "$result" qui est le retour. Mes fonctions ne dépassent jamais 100 lignes de code, donc peut être que je n'ai pas besoin de savoir ce qu'il y a dedans. Et puis c'est en Php, donc très faiblement typé, on peut mettre n'importe quel type dans une variable. Donc ce que tu dis ne convient pas forcément.
    "Ceci dit" est un non sens. Cf Wikipedia. C'est soit "cela dit", soit rien.
    Il ne faut pas oublier que la politesse et le respect sont mutuels.

    Dernières prestations de HQF Development:

  8. #168
    Expert Confirmé Sénior

    Inscrit en
    janvier 2007
    Messages
    10 173
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 173
    Points : 12 816
    Points
    12 816

    Par défaut

    Citation Envoyé par SurferIX Voir le message
    . Et puis c'est en Php, donc très faiblement typé, on peut mettre n'importe quel type dans une variable. Donc ce que tu dis ne convient pas forcément.
    ça n'a pas grand chose à voir...

    Si le nom de la fonction est clair, il est alors totalement compréhensible dans tous les cas d'appeler "res" le retour, si on ne s'en sert que là..

    C'est sûr que si on a "res1", "res2, .. res100", là c'est une faute grave.. et impossible à lire...
    "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

  9. #169
    Membre régulier
    Inscrit en
    octobre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : octobre 2004
    Messages : 71
    Points : 97
    Points
    97

    Par défaut

    Citation Envoyé par souviron34 Voir le message
    ça n'a pas grand chose à voir...

    Si le nom de la fonction est clair, il est alors totalement compréhensible dans tous les cas d'appeler "res" le retour, si on ne s'en sert que là..

    C'est sûr que si on a "res1", "res2, .. res100", là c'est une faute grave.. et impossible à lire...
    Avec une fonction unitaire de moins de 30 lignes ça peut passer en effet, mais de façon globale, on est toujours gagnant a bien nommer une variable...

  10. #170
    Membre émérite Avatar de SurferIX
    Homme Profil pro Olivier Pons
    Ingénieur développement logiciels
    Inscrit en
    mars 2008
    Messages
    436
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier Pons
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mars 2008
    Messages : 436
    Points : 906
    Points
    906

    Par défaut

    Citation Envoyé par souviron34 Voir le message
    ça n'a pas grand chose à voir...
    Si, parce que dans la conversation, des personnes parlaient du fait qu'en fonction du type intrinsèque de la variable, le nom pouvait être explicite (intXXX = entier, strXXX = chaine etc), alors qu'en Php comme c'est faiblement typé, ce principe ne s'applique plus, donc tu ne peux pas faire (intRetour = entier, strRetour = chaine etc), ce qui pourrait être un indice supplémentaire pour aider à comprendre.

    Citation Envoyé par deuz59 Voir le message
    Avec une fonction unitaire de moins de 30 lignes ça peut passer en effet, mais de façon globale, on est toujours gagnant a bien nommer une variable...
    Si, dans toutes tes fonctions qui renvoient quelque chose, pour chaque fonction, tu as :

    - une variable nommée "$result" ;
    - tes fonctions sont courtes.

    Alors, tu sais que c'est là que sera forcément le résultat de retour. Le nom de la fonction doit suffire à lui tout seul.

    Exemples concrets (pris de deux fichiers différents) :

    Code :
    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
        public function translateDate(
            $date_time,
            $format = 'date_time_format_long_sans_annee',
            $first_upcase=true
        ) { 
            switch ($this->_trad->getLang()) {
                /* (!!) RAF pour l'anglais */
                case 'cn':
                    /* Code pour le jour où je le ferai en Chinois */
                    break;
    
                default:
                    /* Traduction date en français */
                    $jour = $this->_trad->get(
                        self::$_TabStrDaysOfWeek[ $date_time->format('w') ]
                    );  
                    $mois = $this->_trad->get(
                        self::$_TabStrMonths[ $date_time->format('n') ]
                    );  
                    $retour = sprintf(
                        $date_time->format(
                            $this->_trad->get($format)
                        ),  
                        $jour,
                        $mois
                    );  
                    if ($first_upcase) {
                        $retour = ucfirst($retour);
                    }   
                    break;
            }   
            return $retour;
        }
    et

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
        public function queryManyValues(
            $sql,
            $tab,
            $type_fetch=PDO::FETCH_BOTH,
            $debug=false,
            $debug_console=false,
            $debug_maxlen=false
        ) { 
            if ($debug) {
                $this->_queryDump($sql, $tab, $debug_console, $debug_maxlen);
            }   
            $stmt = $this->execQuery($sql, $tab);
            $retour = $stmt->fetch($type_fetch);
            return $retour;
        }
    Désolé mais si le type ne comprend pas à quoi sert "$retour", là, je ne peux vraiment plus rien pour lui. Ah si la documentation. Toutes mes fonctions sont documentées. Exemple pour la fonction précédente :

    Code :
    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
        /**
         * Exécution d'une requête et renvoi du résultat, afin de
         * pouvoir lire plusieurs champs
         *
         * @param string $sql           Requête à exécuter
         * @param array  $tab           Paramètres à passer à la requête
         * @param string $type_fetch    Type de résultat de retour :
         *                              PDO::FETCH_BOTH (défaut):
         *                              retourne un tableau indexé
         *                              par les noms de colonnes
         *                              et aussi par les numéros de
         *                              colonnes, commençant à
         *                              l'index 0, comme retournés
         *                              dans le jeu de résultats
         * @param bool   $debug         Si on affiche une trace
         *                              de debug
         * @param bool   $debug_console Si le debug de retour est
         *                              pour une console
         * @param bool   $debug_maxlen  Si le debug de retour est
         *                              pour une console, on peut
         *                              préciser la longueur max
         *                              par ligne
         *
         * @return integer Nombre d'enregistrements affectés par la requête
         */

    Et là vraiment, vraiment... si la personne ne comprend pas à quoi sert "$retour", là, je ne peux vraiment plus rien...
    "Ceci dit" est un non sens. Cf Wikipedia. C'est soit "cela dit", soit rien.
    Il ne faut pas oublier que la politesse et le respect sont mutuels.

    Dernières prestations de HQF Development:

  11. #171
    Membre régulier
    Inscrit en
    octobre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : octobre 2004
    Messages : 71
    Points : 97
    Points
    97

    Par défaut

    Citation Envoyé par SurferIX Voir le message

    Si, dans toutes tes fonctions qui renvoient quelque chose, pour chaque fonction, tu as :

    - une variable nommée "$result" ;
    - tes fonctions sont courtes.

    Alors, tu sais que c'est là que sera forcément le résultat de retour. Le nom de la fonction doit suffire à lui tout seul.
    Cela peut en effet passer avec une troisième condition :
    - le nom de tes fonctions est précis et compréhensible


Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •