Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Quels sont les pires noms de variables que vous avez déjà vus
? Un développeur identifie les deux plus mauvais noms couramment utilisés

Le , par Hinault Romaric

0PARTAGES

10  2 
Un problème auquel est continuellement confronté le développeur dans son activité est l’attribution des noms aux variables.

Afin de faciliter la lisibilité et la compréhension du code, le programmeur opte le plus souvent pour des variables suffisamment descriptives ou se reporte à des conventions de nommage.

ANDY Lester, un développeur senior se penche dans un billet de blog sur les noms attribués aux variables et présente selon lui les deux pires noms qui sont constamment utilisés par les développeurs pour qualifier les variables.

La pire dénomination qu’un développeur peut donner à une variable est selon Lester le nom « data ».

Code php : Sélectionner tout
1
2
3
  
$data = read_record(); 
print "ID = ", $data["CUSTOMER_ID"];

« Bien sûr il y a des données ! C’est ce que contiennent les variables » écrit Lester, qui ironise par la suite. « C’est comme si vous emballez vos biens dans des cartons de déménagement et vous les étiquetez le carton des matières ».

Pour ANDY Lester, les noms des variables doivent dire quel type de données est manipulé.

En seconde position, l’utilisation des chiffres pour distinguer les variables. Exemple : data2.

Code php : Sélectionner tout
1
2
3
4
5
6
7
8
9
  
$total = $price * $qty; 
$total2 = $total - $discount; 
$total2 += $total2 * $taxrate; 
  
$total3 = $purchase_order_value + $available_credit; 
if ( $total2 < $total3 ) { 
    print "You can't afford this order."; 
}

N’importe quelle variable qui s’appuie sur un chiffre pour se distinguer d’une autre doit être immédiatement renommée. Le véritable assassin dans le code ci-dessus selon Lester est la ligne « if ($ total2 <$ total3) » qui obliger à remonter plus haut pour l’interpréter.

Ce ne sont là que deux exemples sur de mauvais noms de variables qui sont utilisés par les développeurs.

Source : Blog ANDY Lester

Et vous ?

Avez-vous déjà utilisé ces noms pour vos variables ?

Quels autres pires noms de variables avez-vous déjà vus ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de djinneo
Membre du Club https://www.developpez.com
Le 20/04/2012 à 17:42
Citation Envoyé par nu_tango Voir le message
fonctions mathématiques
j'ai lu hier:
si "z" est le rayon d'une pizza et "a" son épaisseur, alors son volume est donné par: Pi*z*z*a
17  0 
Avatar de GrandFather
Expert éminent https://www.developpez.com
Le 23/04/2012 à 16:05
Citation Envoyé par trobin Voir le message
L'humour c'est bien, mais quand le résultat ne marche pas, ça fait beaucoup moins rire !
Sans doute un problème de typage... T'as essayé tasoeur en String à la place de tamere en Short ?
14  0 
Avatar de GrandFather
Expert éminent https://www.developpez.com
Le 23/04/2012 à 9:41
Citation Envoyé par tasna  Voir le message
Le pire c'est la célébre variable i suivie de ++ dans le célébre :

Code : Sélectionner tout
1
2
3
4
5
 
for(int i=0; i<10; i++) 
{ 
     printf("%i\n",Price[i]); 
}

Utiliser i pour une variable dont l'usage se limite à la boucle dont elle est l'indice d'itération n'est en rien catastrophique...

Ce qui m'interpelle plus dans ton exemple, c'est le 10. 10 quoi ? Et pourquoi pas 20, 30, 50 ou encore 43597 ? A la lecture de ce code, on ne sait pas si cette valeur de 10 reflète une contrainte technique, un choix arbitraire du développeur ou encore une spécification du cahier des charges.

Remplacer le cardinal 10 par un nom de constante explicite indiquant à quoi il correspond me semble plus profitable pour le lecteur que de s'acharner sur ce pauvre i...
13  0 
Avatar de BakaOnigiri
Membre actif https://www.developpez.com
Le 22/04/2012 à 19:48
Pour ma part, ce qui me gène le plus ce sont les variable foo et bar que chaque code de démonstration en anglais utilise tout le temps.

Pourquoi ces codes de démo n'utilisent pas eux même des noms de variables explicites ?

En général le but de ces petits bouts de codes servent à expliquer comment coder qqchose, comment fonctionne une api, et donc sont le plus souvent à but éducatif.

Il semble donc évident, que pour comprendre un code éducatif, les variables doivent être avec nom éducatif.
11  0 
Avatar de djinneo
Membre du Club https://www.developpez.com
Le 20/04/2012 à 16:37
Pour les boucles, l'emploi d'itérateurs nommés avec une seule lettre (au hasard "i", "j", "k" relève quasi de la convention d'écriture.

Je m'étais donc fait "plaisir" en les bapisant "irene", "julie" et "katia" -ce qui était en même temps, un clin d'oeil à des stagiaires de la boîte.

Mais j'ai trouvé ça bcp moins fun quand ma hiérarchie a inspecté mon code
11  1 
Avatar de Zack_r
Membre régulier https://www.developpez.com
Le 20/04/2012 à 16:00
Pour ma part, un ancien développeur nommer toutes ces variables en mettant toto...

Par exemple tabtotot, toto, toto1, toto4...

L'angoisse quand j'ai vue le code la première fois...

J'espère une chose, c'est qu'il a complètement changé d'orientation professionnelle. Je sais je suis méchant, mais à cause de lui j'ai connu l'enfer !
9  0 
Avatar de Pill_S
Membre expert https://www.developpez.com
Le 20/04/2012 à 17:14
Je ne suis pas de l'avis de M. Lester.... Les noms de variables volontairement "obfusqués" peuvent être utiles. Pour ma part, j'opère un distingo en fonction de la portée d'une variable.

Tout ce qui est local, est volontairement "mal nommé", quelques lettres tout au plus, et des chiffres pourquoi pas. Cela car la durée de vie de ces variables étant très limitée, leur donner un nom bien choisi relève de l'overkill, et tend à indiquer qu'elle a une certaine importance ou dissipation dans le programme, alors que ce n'est pas le cas.

Tout ce qui peut "déborder" hors du block/méthode courant (surtout les champs finalement...) possède un nom nettement mieux réfléchi (mais sans préfixe de type ou autre notation hongroise, car je fais du java et que les outils sont suffisament puissants pour qu'on n'ait pas besoin de tels artifices).

Du coup c'est clair, les petits noms font partie de l'implémentation du bout de code local, le reste a une durée de vie bien plus longue... Un petit commentaire si vraiment l'implém est compliquée, et encore, et aucune fonction ne dépassant 100 lignes et c'est dans la boite, coco!

10  1 
Avatar de ptah35
Membre éclairé https://www.developpez.com
Le 21/04/2012 à 9:36
Je sais que ce n'est pas vraiment le sujet du file, mais à propos de l'utilisation de sa langue maternelle pour nommer des identificateurs, si je n'ai fondamentalement rien contre cette pratique, je n'aime en revanche pas trop l'utilisation du français ou de toute autre langue dont l'alphabet comprend des signe diacritique si celui du langage de programmation de les supporte pas. Outre la laideur du français écrit sans accents, leur absence est vraiment susceptible de créer de la confusion.

De plus, j'aime avoir une certaine homogénéité dans le code et si l'équipe de développement est multiculturelle, le choix de l'anglais me paraît indiqué.
9  0 
Avatar de befalimpertinent
Membre éclairé https://www.developpez.com
Le 20/04/2012 à 16:42
Je rejoins ce qui disent que les pires sont les variables d'un seul caractère. J'ai même parfois vu des choses du type:
Code : Sélectionner tout
1
2
int a;//age du capitaine
Mais Bo*$€|_ ! Pourquoi ne pas avoir écrit:
Code : Sélectionner tout
1
2
int age_du_capitaine;
9  1 
Avatar de air-dex
Membre expert https://www.developpez.com
Le 20/04/2012 à 17:14
Citation Envoyé par befalimpertinent Voir le message
Je rejoins ce qui disent que les pires sont les variables d'un seul caractère. J'ai même parfois vu des choses du type:
Code : Sélectionner tout
1
2
int a;//age du capitaine
Mais Bo*$€|_ ! Pourquoi ne pas avoir écrit:
Code : Sélectionner tout
1
2
int age_du_capitaine;
Pour les noms de variables assez courts, est-ce que cela ne remonte pas à une époque où les développeurs n'avaient pas d'autocomplétion et où ces derniers avaient autre chose à faire que de finir d'écrire des noms de variables à rallonge ? Tout le monde n'a pas toujours eu un Ctrl+Espace pour finir de taper un nom d'une variable.

Citation Envoyé par rOnnie974 Voir le message
Dans le genre pas mal, les mecs qui codent en français:
Pas forcément d'accord. "Coder systématiquement en anglais parce que c'est comme ça" n'est pas forcément une bonne pratique. À mon avis le choix de la "langue de développement" dépend aussi de celles des développeurs derrière leur code. Est-ce un crime que de coder en français un programme dont on sait pertinemment qu'il ne sera jamais regardé par des personnes non francophones (comme un programme fait par et pour soi-même par exemple) ? Je ne le pense pas, bien au contraire.

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.
8  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web