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. #121
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 522
    Points
    2 522
    Par défaut
    Citation Envoyé par Freem Voir le message
    Je préfère lire un code aux variables obfusquées mais aux fonctions bien encapsulées plutôt qu'un code de 5km aux noms à rallonge qui décrivent trop ce qu'elles font.
    J'en profite pour signaler un principe de nommage qui me parait fondamental pour obtenir des noms pertinents : ne pas nommer en fonction de l'utilisation qu'on fait de quelque chose, mais en fonction de ce que c'est.

    Par exemple "calculTaxesFacture" n'est pas un bon nom de méthode, alors que "calculTVA", oui. Le jour où on voudra utiliser ce calcul pour autre chose qu'une facture, le résultat sera plutôt bizarre...

  2. #122
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $isql = "UPDATE chp_ii SET mettre='$i', mettrei='$ii', mettreii=$iii";
    	$iresult = mysql_query($isql, $iiiii);


    j'imagine que cela devrait être quelques choses comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = "UPDATE nom_table SET nom_champs='$pommme', date='$now', nom_champs_quantite=$espece";
    	$result = mysql_query($sql, $nom_database);

  3. #123
    Membre confirmé Avatar de saymoneu
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2010
    Messages : 248
    Points : 505
    Points
    505
    Par défaut
    Si y'a bien un truc qui me rend fou au niveau du nommage des variables quand je retravaille le code de quelqu'un, c'est les variables avec un numéro derrière, utilisées 20 fois et pas claires du tout du genre somme1, somme2,... somme16, total1, moy13.

    C'est vraiment dur à suivre des fois...

  4. #124
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2007
    Messages : 9
    Points : 14
    Points
    14
    Par défaut
    Perso, dans mon quotidien, je ne trouve pas trop d'horreur en terme de variable, mais j'essaie de prendre l'habitude (ce qui n'est pas toujours facile qd on doit aller vite) de préfixer du type (intCompteur, ou strQuery, ...) Par contre, je suis obligé (et affligé) (en tout cas pour le moment) de jouer avec des horreurs en matière de nom de table et de champs SQL.
    Ex: tbl_customerorderpreparationusertime (pour le nom de la table) avec orderpreparationusertime_customerorder comme nom de champ ( et on a de la chance, le préfixe du champ été raccourci) Imaginez les requêtes (et vive les alias)

    Je crois qu'il faut un juste milieu entre var1, var2, ... var298547 et
    int64MontantTotalDuDocumentAFacturer (par exemple)

  5. #125
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    Perso, dans mon quotidien, je ne trouve pas trop d'horreur en terme de variable, mais j'essaie de prendre l'habitude (ce qui n'est pas toujours facile qd on doit aller vite) de préfixer du type (intCompteur, ou strQuery, ...) Par contre, je suis obligé (et affligé) (en tout cas pour le moment) de jouer avec des horreurs en matière de nom de table et de champs SQL.
    Ex: tbl_customerorderpreparationusertime (pour le nom de la table) avec orderpreparationusertime_customerorder comme nom de champ ( et on a de la chance, le préfixe du champ été raccourci) Imaginez les requêtes (et vive les alias)
    alors là je suis d'accord et pas d'accord. D'un côté en SQL, je préfixe effectivement mes tables par T_, mes vues par V_, autant en code pur (C# notamment), la variable s'appelle juste par ce qu'elle contient (montantTVA).
    Par contre, j'avoue que j'ai aussi des toto quand ca me saoule

    ps: la notation intMontant, strNom est à proscrire maintenant car c'est la vieille notation hongroise (on mettait szNom pour une chaine) car maintenant, tu passes ton curseur sur la variable et tu connais le type. Disons que dans une methode de calcul mathematique, t'auras quasi que des int/double donc pourquoi le préciser, idem dans une methode de gestion de chaine de caractère, meme complexe.

  6. #126
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut ok
    vous connaissez la variable ok?
    J'ai un collègue qui passe son temps à mettre des "if (ok)" pour suivre un statut sans comprendre qu'en réorganisant ses boucles ou en utilisant le "not" il pouvait l'éviter.... ou tout au moins la nommer en indiquant ce qui est ok... Dans des procédures de parfois quelques centaines de lignes je ne vous parle pas du casse tête pour suivre sa variable....

  7. #127
    Membre habitué
    Inscrit en
    Avril 2011
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 59
    Points : 154
    Points
    154
    Par défaut
    1. Une série de x, xx, X, XX, dx, dX dans la même méthode(avec leur homologues en Y c'est pas drole sinon). J'ai passer je ne sais combien de temps à essayer de comprendre ce que fesait les boucles imbriquées.


    2. Des noError et des notOk, mais c'est surtout l'utilisation qui en était faite qui m'agacait:

    if (!noError)
    {
    ...
    }

    Les doubles négations c'est le mal!

  8. #128
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    Citation Envoyé par Traroth2 Voir le message
    J'en profite pour signaler un principe de nommage qui me parait fondamental pour obtenir des noms pertinents : ne pas nommer en fonction de l'utilisation qu'on fait de quelque chose, mais en fonction de ce que c'est.

    Par exemple "calculTaxesFacture" n'est pas un bon nom de méthode, alors que "calculTVA", oui. Le jour où on voudra utiliser ce calcul pour autre chose qu'une facture, le résultat sera plutôt bizarre...
    J'ai pas compris le problème (le dernier paragraphe => problème de formulation ?)... Si la fonction s'appelle "calculTaxesFacture" alors on ne l'utilise pas pour autre chose (je ne dit pas que c'est un bon nom, ça dépend du contexte). Dans cette exemple précis, si elle calcul la TVA, et qu'on veut calculer la TVA, alors le résultat sera correct. Par contre je plains celui qui passera derrière

    Sinon plus ou moins d'accord pour le principe, ça favorise la réutilisation des fonctions mais nommer la fonction en fonction de l'utilisation qu'on en fait permet de rendre le programme plus lisible.

  9. #129
    Membre actif
    Profil pro
    Ingénieur
    Inscrit en
    Mars 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mars 2007
    Messages : 199
    Points : 291
    Points
    291
    Par défaut
    J'ai souvent rencontré des variables du genre :

    int compteur = 0;
    int Compteur = 0;

    ou :

    int foo = 0;
    int bar = 0;
    int foobar = 0;


  10. #130
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2007
    Messages : 9
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    alors là je suis d'accord et pas d'accord. D'un côté en SQL, je préfixe effectivement mes tables par T_, mes vues par V_, autant en code pur (C# notamment), la variable s'appelle juste par ce qu'elle contient (montantTVA).
    Par contre, j'avoue que j'ai aussi des toto quand ca me saoule
    Je suis d'accord sur le préfixe T_ ou V_, et je préfixe/suffixe même mes SP en fonction de leur usage(USP_, EXP_,_UPD, _INS, ...) mais l'exemple portait surtout sur le nom de la table lui-même que je trouve à rallonge.

  11. #131
    Membre chevronné Avatar de Hellwing
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 538
    Points : 2 091
    Points
    2 091
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    ps: la notation intMontant, strNom est à proscrire maintenant car c'est la vieille notation hongroise (on mettait szNom pour une chaine) car maintenant, tu passes ton curseur sur la variable et tu connais le type. Disons que dans une methode de calcul mathematique, t'auras quasi que des int/double donc pourquoi le préciser, idem dans une methode de gestion de chaine de caractère, meme complexe.
    Ca dépend des cas.
    Il m'arrive régulièrement de manipuler des données dont je dois convertir le type. Cas typique :
    Je reçois une valeur numérique dans une String (stockée de cette manière en base de données, pas ma faute, toussa toussa) et pour pouvoir l'exploiter, je crée une variable temporaire préfixée par dbl ou int, suivie du nom de la variable d'origine. Cela me permet de savoir que je manipule l'information d'origine, mais au bon format.
    Et de même dans l'autre sens, quand je reçois un entier et que je dois le convertir en String, je préfixe par str histoire de m'y retrouver.

  12. #132
    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 Hellwing Voir le message
    Ca dépend des cas.
    Il m'arrive régulièrement de manipuler des données dont je dois convertir le type. Cas typique :
    Je reçois une valeur numérique dans une String (stockée de cette manière en base de données, pas ma faute, toussa toussa) et pour pouvoir l'exploiter, je crée une variable temporaire préfixée par dbl ou int, suivie du nom de la variable d'origine. Cela me permet de savoir que je manipule l'information d'origine, mais au bon format.
    Et de même dans l'autre sens, quand je reçois un entier et que je dois le convertir en String, je préfixe par str histoire de m'y retrouver.
    voir plus haut les citations des désavantages de ces notations..

  13. #133
    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
    Citation Envoyé par souviron34 Voir le message
    voir plus haut les citations des désavantages de ces notations..
    Ca peut être utile, si le préfixe a un sens beaucoup plus fonctionnel. Je n'ai pas retrouvé l'article ou Joel Spolsky expliquait que dans Excel, il y avait un préfixe obligatoire pour toute variable "ligne" et un autre pour toute variable "colonne"(et j'imagine qu'il y en a un paquet). J'ai connu une banque qui imposait des préfixes pour "Label, Code, Nombre, Montant, Numéro, Identifiant"(et y'en avait deux autres que j'ai oublié).

    Dans les deux cas, ça permet de visualiser les aberrations : alimenter un Montant avec un code, ou une ligne avec une colonne, ça saute aux yeux, et ça ne peut pas être bon.

    Mais clairement, le format en préfixe, bof. D'autant que, suivant le langage, on peut parfaitement mettre un alpha dans un numérique, ou l'inverse - aussi longtemps que le signifié reste le même(un code produit reste un code produit, qu'il soit alphanumérique ou numérique).

  14. #134
    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 el_slapper Voir le message
    il y avait un préfixe obligatoire pour toute variable "ligne" et un autre pour toute variable "colonne"(et j'imagine qu'il y en a un paquet). J'ai connu une banque qui imposait des préfixes pour "Label, Code, Nombre, Montant, Numéro, Identifiant"(et y'en avait deux autres que j'ai oublié).
    Oui, mais ce sont des préfixes fonctionnels

    Pas sur le type (informatique) de la variable..

  15. #135
    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 el_slapper Voir le message
    Ca peut être utile, si le préfixe a un sens beaucoup plus fonctionnel.
    C'est précisément la raison pour laquelle les critiques sur la notation hongroise portent essentiellement sur la version dite "System" alors que ce que tu décrits est la version dite "Apps" de ladite notation.

  16. #136
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 83
    Points : 132
    Points
    132
    Par défaut
    Une bonne référence en la matière : "Coder proprement" de Robert C. Martin

    Une variable doit avoir une "responsabilité unique" et son nom doit la retranscrire précisément. Ne pas hésiter à la renommer quand on repasse sur le code si elle reste trop flou.
    Perso je préfère un nom à rallonge qui indique peut être que le code doit être repensé qu'un nom générique qui indique qu'on ne saura jamais ce qu'il fait !

  17. #137
    Membre chevronné Avatar de Hellwing
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 538
    Points : 2 091
    Points
    2 091
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    voir plus haut les citations des désavantages de ces notations..
    On s'est mal compris. Il s'agit d'une variable locale, intermédiaire, dont le préfixe consiste juste à avoir un nom de variable différent. Le rôle principal de ce préfixe n'étant pas de définir de quel type on parle. J'aurai très bien pu utiliser "totoMonParametre" mais c'est moins lisible.

  18. #138
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    586
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 586
    Points : 1 147
    Points
    1 147
    Par défaut
    Vaste débat, si j'en crois le nombre de pages par jour... Et qui, comme la plupart des vastes débats du domaine informatique (et de tout autre domaine d'ailleurs) fait ressortir un certain nombre de règles ou de pratiques conseillées et pas toujours respectées, et aussi beaucoup de "clochers" qui défendent leur religion becs-et-ongles.
    Ce qui me parait souhaitable, c'est que le code soit lisible. Pas uniquement par celui qui l'écrit, mais aussi par ceux qui corrigeront ensuite. Pas du tout par le client, à moins qu'il entre dans une des 2 catégories. Et "lisible", ça ne veut pas dire la même chose pour tout le monde :
    • avec des noms de variable (peut-être longs) significatifs ? Du genre "maCommande", "nombreClients", etc.
    • avec des noms de variables "classiques" ? Du genre i, j, k dans les boucles.
    • avec des noms de variables "surchargés" par tout un tas de préfixes de types, de genre etc.
    • avec des noms de variables dans la langue des lecteurs.
    • etc.
    Citation Envoyé par air-dex Voir le message
    "Coder systématiquement en anglais parce que c'est comme ça" n'est pas forcément une bonne pratique. [...] Pour moi la langue d'un programme devrait être avant tout la langue (maternelle) des développeurs qui ont affaire au code. Et ils ne sont pas toujours tous forcément anglais.
    +1
    Citation Envoyé par alexdmi024 Voir le message
    J'ai travaillé avec un collègue qui accentuait les nom de variable. Que du bonheur!!!
    Et... ? L'UTF8, c'est pas que pour faire de l'ASCII-7bits !

  19. #139
    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 Thorna Voir le message
    Et... ? L'UTF8, c'est pas que pour faire de l'ASCII-7bits !
    ...et avec les langages dynamiques ne nécessitant pas de déclaration des variables avant leur initialisation, utiliser par erreur « facturé » à un endroit du code et « facture » à un autre pour désigner la même variable est facile et est la garantie d'une joyeuse séance de débogage.

    A l'œil il est plus facile de repérer une erreur typographique comme l'oubli ou l'ajout d'une lettre qu'une erreur d'accent.

  20. #140
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 83
    Points : 132
    Points
    132
    Par défaut
    Sous un autre point de vue, des noms de variables pourris, confusant, c'est bon pour la sécurité => plus besoin d'obfusquer le code s'il est déjà illisible par ses propres développeurs

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