web-dev-qa-db-fra.com

Quel est le meilleur commentaire de code source que vous ayez jamais rencontré?

Quel est le meilleur commentaire de code source que vous ayez jamais rencontré?

360
Thomas Bratt
TextBox1.Text = TextBox1.Text; //Point less yes, who writes this crap?
1
corymathews

Lors du codage des applications MAPPER, nous avions certaines normes et l’une d’elles était qu’une liste de variables standard était utilisée dans toute la suite. L'un d'entre eux - 'V43' a toujours été utilisé pour porter un nom de famille. Alors imaginez mon ennui quand le seul commentaire dans un gros bloc cryptique de code MAPPER que l'on m'avait demandé de corriger était le suivant:

Here V43 contains the Surname
1
bokesy

LISP bien écrit est l’un des langages les plus faciles à lire et je l’aime. Mais LISP mal écrit peut être un cauchemar tellement pire que le mauvais Java, etc.

Ici, nous devons créer un "fichier de groupe" s'il existe 3 variantes d'un fichier original nommé avec les suffixes a, b et c. J'avais essayé de traquer un bogue étrange où nous obtenions des fichiers de groupe inutiles ...

  (let ((varianta (format nil "~aa" problem))
        (variantb (format nil "~ab" problem))
        (variantc (format nil "~ac" problem)))
    ;;if the A and B variants exist, create a group file
    ;;(why not just check for a? I don't know, this just feels right)
    (when (and (probe-file varianta)
               (probe-file variantb))
      ...)))

Bug: 1, Gut: 0.

Ceux qui ont écrit ceci n'ont apparemment pas pensé qu'il serait peut-être judicieux de vérifier les trois variantes. Bien sûr, c’est le bogue que j’ai suivi une décennie après la rédaction de ce code (il est antérieur au premier journal SVN).

0
Daniel Dickison
[onload_1;block=begin;when 1=0]

Some of the techinques in this template are rather obscure, just trust me, they need to be there.
OTOH a better sollution would be to create a few seperate templates and pick one in the php-script...

[onload_1;block=end]
0
John Nilsson

Mine fave était un nom de variable dans une partie de la logique métier d'un projet d'école écrit en Java.

int StupidJava = -1;
0
Stephen Curial
<cftry>
...code...
<cfcatch>
  <!--- Gobble --->
</cfcatch>
<cftry>

C'est partout dans la base de code de mes entreprises. C'est ColdFusion et il ignore simplement les erreurs.

0
Stewart Robinson

Revoir l'ancien code des cours est amusant ...

    cardDeck.Push_back(*(new card((rank)r, (suit)s)));  // Push each card onto the deck
                                                        // Temp. objects are overrated

En passant en revue certaines choses, cela me fait souhaiter de laisser plus de commentaires à 4 heures du matin alors que je piratais ensemble du code aléatoire ...

0
Tom
REM Don't delete this print statement ****** will die

Le processus en question était un service dans un code hérité

0
Andy Webb

Consommer sa propre nourriture pour chien: nous avons le même terme sur notre lieu de travail (accepté, uniquement parce que je l’ai introduit). Mon code est parsemé de commentaires qui disent "TODO" et indiquent quelque chose qui devrait être fait à la fin, mais un commentaire qui dit "DOGFOOD" (les deux mots clés sont toujours au début du commentaire, en majuscules) signifie quelque chose qui doit être fait avant ce programme peut être utilisé même en interne. C'est une chose pratique à rechercher, car le mot "dogfood" ne figurera jamais dans une chaîne de caractères citée - si c'est le cas, je peux toujours dire "nourriture pour chien" ou quelque chose du genre - pour qu'une recherche insensible à la casse se produise avec les bons résultats.

En ce qui concerne la mise à zéro de l’accumulateur: j’ai fait exactement la même chose lors de la programmation d’un Intel 80x86 (j’ai démarré sur le 8086 et, à partir de là, dans les Pentium modernes). Ouvrir un registre avec lui-même est le moyen le plus rapide et le plus efficace de le vider. L'utilisation de "MOV AX, 0" nécessite trois octets (code d'opération et deux octets de zéro littéral 16 bits), alors que "XOR AX, AX" n'est que deux; c'est encore plus visible avec les registres étendus 386 et supérieurs, où "MOV EAX, 0" nécessite cinq octets (quatre octets de zéro 32 bits). Mon compilateur C/C++ enregistre toujours les zéros de cette façon, donc je suppose que c'est toujours la meilleure (bien que je n'aie pas étudié les tables de synchronisation d'opcode depuis bien longtemps, et probablement à la fois XOR reg, reg et MOV reg , imm prend une horloge).

0
Rosuav - ChrisA

Je viens de trouver cela dans un code hérité ..

'CANNOT JUST QUIT!
0
madcolor

Je faisais une base de données dans Access, chose très simple - du moins c'était supposé être au début ou je l'aurais fait dans Delphi. Le client souhaitait pouvoir extraire les informations client de la base de données, mais il ne voulait pas entrer suffisamment d'informations pour l'identifier de manière fiable. Je leur ai dit d'utiliser le numéro de téléphone comme clé car chaque client (son mode de fonctionnement, pas pour tout le monde) aurait un numéro différent. Après quelques appels frénétiques de leur part, (cela ne fonctionne pas, nous ne pouvons pas entrer chez le client). J'ai découvert qu'ils étaient trop paresseux pour rechercher les numéros de téléphone de leur ancien système et qu'ils essayaient de saisir tous les numéros qu'ils ne connaissaient pas. "n/a". En essayant de résoudre ce problème pour eux, je me suis retrouvé avec beaucoup de boucles de vérification dans le code et j'avais le commentaire à côté d'un résultat: "Cela ne devrait jamais être atteint s'ils font ce qu'ils sont supposés faire !!!!!!!! ! "

Ils m'ont également demandé une fois "Comment pouvons-nous trouver le bon client même si nous mettons à la mauvaise adresse?" Et tout pour les cacahuètes.

0
Nazreel
// now swap like a <explicative removed>
0
ninegrid
(A bunch of code that's really weird looking)  //Kludge.
0
dsimcha
// long live COM'n'Roll
public enum StatusCode
{
        //success codes
        S_OK                                            = 1,
        S_NONE                                          = 2,
        S_SQL_OPERATIONS_LISTS_EMPTY                    = 3,

        //error codes
        E_NO_MATCHING_END_FOUND                         = -1,
        E_SEQUENCE_NUMBER_NOT_FOUND_AT_BEGINNING        = -2,
        E_SEQUENCE_NUMBER_NOT_FOUND_AT_END              = -3,
        E_FORWARD_AND_BACKWARD_OPS_COUNT_DO_NOT_MATCH   = -4,
        E_FORWARD_AND_BACKWARD_IDS_DO_NOT_MATCH         = -5,
        E_IDS_DO_NOT_MATCH                              = -6
}
0
devdimi
// Hack-er-AMA
0
Paul Suart

Il s'agit d'une ancienne entrée gagnante d'IOCCC, j'ai dû télécharger l'ensemble des archives des gagnants - un énorme 1,4 M - et grep pour plusieurs phrases que je me souvenais mal avant de la trouver.

Syntaxiquement, ce n'est probablement pas un commentaire. Ou peut-être est-ce. Je ne l'ai pas compris. Il n'a certainement pas de délimiteurs de commentaires, mais il n'a pas non plus de délimiteurs de chaînes.

C="Lint says "argument Manual isn't used."  What's that
mean?";

Pas de prix pour deviner le résultat de la charpie.

Et pour les curieux, cette entrée est ici .

0
Miserable Variable

Un vieux code fortran que j'ai vu:

     integer *4 one,two,three;

c    asssign one to 100 before entering the loop
     one=100;
0
HeretoLearn
// Oh crap, i think i'm gonna yack

suivi peu de temps après par:

// TODO: end this lunacy
0
shampoopy