• [^] # Re: Une carrière assurée

    Posté par . En réponse au journal Les 25 erreurs de programmation les plus dangereuses. Évalué à 9.

    Mon avis perso: elle rend le code illisible, et transporte une info dont tout le monde se fout a ce niveau, a savoir le type de la variable. Tout ide digne de ce nom te donnera le type de ta variable quand tu en as besoin.
    Si tu ne peux pas inferer le type de la variable a partir de son nom, ton nom de variable est vraiment mauvais, et il faut le changer plutot que de le prefixer d'un suite de caracteres incongrue.

    Ce qui est important c'est de savoir ce que la variable represente (semantiquement), pas son type de donnees.
    En l'occurence, par exemple, savoir que la chaine est echappee (je cite l'exemple d'un papier que j'avais lu sur pourquoi la notation hongroise ne devrait pas etre utilisee, me demandez pas l'adresse, je l'ai pas).

    Sans compter qu'on se doute bien que la chaine de caractere est implementee par un lpsz, les int par des i etc., on a plus 12 ans.

    Bref, information superflue, qui peut etre retrouvee ailleurs simplement de toutes facons et qui n'a donc pas grand chose a faire a cet endroit, a part polluer le code avec du bruit.

    lpfMonTableau de float c'est quand meme plus chiant a lire que monTableauDeFloat. Et dans les 2 cas, tu sais tres bien quel est le type de chaque variable.

    Le plus drole est quand certains appliquent betement ca a du java, par exemple.
    Tu te retrouves alors avec des lp en prefixe de chaque variable non scalaire (bah vi, tout est pointeur!!!) et des sz devant les strings (bon ok, dans ce cas c'est un mauvais choix du prefix, qui aurait du etre s, mais ca fait toujours sourire).
    Ou des i_Machaine en nom dep arametre d'une fonction pour indiquer que la String n'estp as modifiee.
    Quand tu sais que les strings en java sont immutables...

    Bref, excepte a la rigueur pour une distinction s/sz en C, que tu ne peux deviner et rentre dans le cas cite precedemment (ce que represente la variable), c'est du bruit qui pourrit le code.

    Sinon, wikipedia a des citations a ce sujet, surement plus eloquentes que les miennes:
    http://en.wikipedia.org/wiki/Hungarian_notation#Notable_opin(...)