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 :

Quels sont les pires noms de variables que vous avez déjà vus ?


Sujet :

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

  1. #101
    Membre habitué
    Inscrit en
    Décembre 2004
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 188
    Points : 143
    Points
    143
    Par défaut
    Le pire que j'ai rencontré : A, B et C. En variables globale dans un code de 30 000 lignes.

  2. #102
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    Mon collègue est un gigantesque fan du "toto", "totobis", "tototer"

  3. #103
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2003
    Messages : 9
    Points : 14
    Points
    14
    Par défaut Nomenclature
    Tiens je pensais que la nomenclature de Leszinsky-Reddick était devenue enfin un norme après plus de 20 ans...

  4. #104
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par isozv Voir le message
    Tiens je pensais que la nomenclature de Leszinsky-Reddick était devenue enfin un norme après plus de 20 ans...
    Si les langages de développement et l'ingénierie logicielle étaient restés figés depuis le début des années 90, ça aurait pu être le cas, oui...

  5. #105
    Expert éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par GrandFather Voir le message
    Si les langages de développement et l'ingénierie logicielle étaient restés figés depuis le début des années 90, ça aurait pu être le cas, oui...


    Sans même parler d'évolution, juste un bilan de ce que ça donne...

    Leszynski naming convention

    Disadvantages

    Since the Leszynski naming convention is a special form of Hungarian notation the same general disadvantages also apply to the Leszynski convention.
    • Changes in database design may require wholesale renaming. For example, replacing a table with a query would involve either retaining the tbl name for the query, or going through the entire database replacing the tbl name with a qry name.
    • When transferring the database to a different DBMS, problems will arise if the target DBMS does not support CamelCase names.
    • As every object of the same type starts with the same letter, it is not possible to navigate through the objects in a List box by typing the beginning letter.

    Hungarian notation

    Disadvantages

    Most arguments against Hungarian notation are against System Hungarian notation, not Applications Hungarian notation. Some potential issues are:

    • The Hungarian notation is redundant when type-checking is done by the compiler. Compilers for languages providing type-checking ensure the usage of a variable is consistent with its type automatically; checks by eye are redundant and subject to human error.
    • All modern integrated development environments display variable types on demand, and automatically flag operations which use incompatible types, making the notation largely obsolete.
    • Hungarian Notation becomes confusing when it is used to represent several properties, as in a_crszkvc30LastNameCol: a constant reference argument, holding the contents of a database column LastName of type varchar(30) which is part of the table's primary key.
    • It may lead to inconsistency when code is modified or ported. If a variable's type is changed, either the decoration on the name of the variable will be inconsistent with the new type, or the variable's name must be changed. A particularly well known example is the standard WPARAM type, and the accompanying wParam formal parameter in many Windows system function declarations. The 'w' stands for 'word', where 'word' is the native word size of the platform's hardware architecture. It was originally a 16 bit type on 16-bit word architectures, but was changed to a 32-bit on 32-bit word architectures, or 64-bit type on 64-bit word architectures in later versions of the operating system while retaining its original name (its true underlying type is UINT_PTR, that is, an unsigned integer large enough to hold a pointer). The semantic impedance, and hence programmer confusion and inconsistency from platform-to-platform, is on the assumption that 'w' stands for 16-bit in those different environments.
    • Most of the time, knowing the use of a variable implies knowing its type. Furthermore, if the usage of a variable is not known, it cannot be deduced from its type.
    • Hungarian notation strongly reduces the benefits of using feature-rich code editors that support completion on variable names, for the programmer has to input the whole type specifier first.
    • It makes code less readable, by obfuscating the purpose of the variable with needless type and scoping prefixes.

    Personellement, je trouve que le nom a_crszkvc30LastNameCol est bien pire que toto ou A ...

  6. #106
    Membre éclairé Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Points : 683
    Points
    683
    Par défaut
    Dans le genre affreux, j'ai vu aujourd'hui même ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var $this = $(this).parent();

  7. #107
    Membre habitué
    Profil pro
    amateur
    Inscrit en
    Avril 2012
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : amateur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2012
    Messages : 145
    Points : 144
    Points
    144
    Par défaut question de sens
    Je pense que l'article part d'une bonne intention, mais qu'il manque le but, notamment avec ses exemples. Un identifiant doit indique le sens du symbole --comme il dit sans avoir à chercher la définition. Point.

    1. Cas de data : J'utilise couramment 'datum' (ou 'element' qui n'en dit pas plus) en programmation générique. Par exemple les cellules d'une liste chaînée peuvent contenir n'importe quoi. Donc, un terme générique comme 'datum' dénote précisément le sens correct.
    ('value' serait faux car ce ne sont pas nécessairement des valeurs)

    2. Cas de numérotation : J'utilise souvent pos1 pos2 comme bornes d'intervalle (fermé) dans une chaîne. Il y a 2 bornes dont l'une (1) vient avant l'autre (2) : le nommage est donc parlant et correct.
    (pour de vraies séquences, j'utilise i,j ; mais une chaîne n'héberge pas une séquence d'éléments --ici caractères-- sauf pour de l'ASCII de base)

    Voilà, denis

  8. #108
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Juste une petite réaction la dessus:

    Citation Envoyé par gangsoleil
    avec toutefois quelques exceptions acceptables, comme i, j, k, ... pour les indices de boucle
    L'inconvénient d'un i en variable de boucle, c'est qu'il devient impossible en cas de maintenance/debug de faire une recherche sur le nom de la variable .. enfin si on peut, mais des i, tu vas en trouver un paquet.

    Moi j'utilise index, et en cas de boucle imbriquée je préfixe les index pour les spécifier un peu et savoir sur quoi c'est un index.

    Mes 2 cents

    Bulbo

  9. #109
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par denispir Voir le message
    l'article part d'une bonne intention
    Comment dit on déjà ? le chemin de l'enfer est pavé de bonnes intentions


  10. #110
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par bulbo Voir le message
    L'inconvénient d'un i en variable de boucle, c'est qu'il devient impossible en cas de maintenance/debug de faire une recherche sur le nom de la variable .. enfin si on peut, mais des i, tu vas en trouver un paquet.
    En principe la portée de i est limitée à la boucle dont cette variable est l'indice, je ne vois pas trop de scénarios de debug pour lesquels il serait nécessaire de la rechercher (si tu as isolé la boucle comme source du problème, tu tombes forcément sur i, si tu ne l'as pas identifiée, tu n'as pas de raison de la rechercher)...

    Par contre, tu as raison sur un point, utiliser i comme nom d'une variable avec une portée plus importance que celle d'un bloc et/ou d'une boucle, est une très mauvaise idée.

  11. #111
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Pour ma part, j'ai vu "value" et "valueplus" :-)

  12. #112
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    int kangourou = 1000;
    sleep(kangourou);

  13. #113
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par bulbo Voir le message
    L'inconvénient d'un i en variable de boucle, c'est qu'il devient impossible en cas de maintenance/debug de faire une recherche sur le nom de la variable .. enfin si on peut, mais des i, tu vas en trouver un paquet.
    Je ne vois pas bien le rapport avec le debug et par ailleurs quel éditeur n'est pas capable de faire une rechercher limitée à un bloc ????

    Moi j'utilise index, et en cas de boucle imbriquée je préfixe les index pour les spécifier un peu et savoir sur quoi c'est un index.
    J'ai vraiment du mal à te suivre : en quoi rechercher une variable du nom de index est pus commode que de rechercher une variable du nom de i ? (à moins d'utiliser l'ancien edlin du DOS à la rigueur ).

  14. #114
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Tu n'as pas forcément un éditeur évolué sous la main .. et index aura au moins le mérite de correspondre beaucoup plus à ta variable que i que tu retrouveras dans le moindre mot clé if en ne parlant que de ça .. sans parler que dans du code, index se détache mieux qu'un simple i, facilité de relecture etc..

    Et je suis tellement mariole qu'à l'époque j'avais pioché ça dans un document assez sérieux parlant justement des conventions d'écritures a adopter pour éviter des problèmes triviaux.

    Pour revenir sur la phrase que j'avais initialement cité: i, j et k pour des variables de boucles...

    Recherche évoluée ou pas, il est plus facile par exemple de repérer une utilisation de userIndex au lieu de groupIndex comparé à i à la place de j.

  15. #115
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 536
    Points : 5 219
    Points
    5 219
    Par défaut
    un peu de linq ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var query4 = from pcgmpgmvpc in query3
                             select new { pcgmpgmvpc.Value };
    j'ai tronqué la requête, complète elle fait une dizaine de lignes

  16. #116
    Expert éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par bulbo Voir le message
    Recherche évoluée ou pas, il est plus facile par exemple de repérer une utilisation de userIndex au lieu de groupIndex comparé à i à la place de j.
    mouais...

    Si tu traites une matrice, une moyenne, une variance, en général en maths les notations sont bien i,j,k..

    Pourquoi alors changer les notations plutôt que celles communément acceptées (et comprises quand on compare à un papier) ??

  17. #117
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par bulbo Voir le message
    Tu n'as pas forcément un éditeur évolué sous la main ..
    Mouais ....

    En général on travaille sur un poste de travail, pas sur un smartphone, non ?

  18. #118
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    Points : 49
    Points
    49
    Par défaut
    Le pire du pire que j'aie vu, un collègue explique à un stagiaire comment coder sa fonction : "tu déclares une variable toto, tu fais ta boucle etc...".
    Le stagiaire l'a pris au mot.
    Une semaine plus tard, mon collègue relit le code et... compte les toto1, toto2, toto3... jusqu'à 73 !!!

  19. #119
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Mouais ....

    En général on travaille sur un poste de travail, pas sur un smartphone, non ?
    Hier encore j'ai ouvert une classe avec VI pour jeter vite fait un oeil à ce qui se passait dans un bout de code qui posait problème.
    Il n'y a que ça de dispo sur la machine unix ou on compile...

    Pour souviron34: on ne debug pas une feuille de papier avec une équation mathématique dessus, quand tu dois trouver pourquoi une double boucle ne tourne pas rond avec des index i et j .. vous faites ce que vous voulez mais moi je préfère des noms de variables un poil plus long et lisible.

    Bulbo

  20. #120
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 807
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 807
    Points : 32 105
    Points
    32 105
    Par défaut
    J'ai vu quelques horreurs, mais au final, je laisse la parole à mon père, qui a 2 exemples particulièrement délicats(des années 80, le problème n'est pas nouveau) :

    -des noms de variables en slovaque(alors que la boite est allemande)
    -"pomme_de_terre", "kilo_de_pommes_de_terre", "carotte"; dans un programme comptable.

Discussions similaires

  1. JO de Sotchi : quels sont les pires commentateurs ?
    Par Bovino dans le forum Sports
    Réponses: 3
    Dernier message: 21/02/2014, 15h51
  2. Quel est le pire bout de code que vous ayez jamais écrit ?
    Par Gordon Fowler dans le forum Débats sur le développement - Le Best Of
    Réponses: 61
    Dernier message: 31/10/2011, 13h18
  3. Modélisation : quels sont les livres que vous recommandez ?
    Par TheLeadingEdge dans le forum Modélisation
    Réponses: 3
    Dernier message: 26/08/2008, 10h11
  4. Réponses: 70
    Dernier message: 23/08/2007, 17h57

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