Quel est le meilleur commentaire dans le code source que vous ayez jamais rencontré? [fermé]

360

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

Robert Harvey
la source

Réponses:

1462

Je suis particulièrement coupable de cela, en incorporant des commentaires non constructifs, de la poésie de code et de petites blagues dans la plupart de mes projets (bien que j'ai généralement assez de sens pour supprimer quoi que ce soit directement offensant avant de publier le code). En voici un que j'aime particulièrement, placé loin, très loin d'un `` objet divin '' mal conçu:

/**
* For the brave souls who get this far: You are the chosen ones,
* the valiant knights of programming who toil away, without rest,
* fixing our most awful code. To you, true saviors, kings of men,
* I say this: never gonna give you up, never gonna let you down,
* never gonna run around and desert you. Never gonna make you cry,
* never gonna say goodbye. Never gonna tell a lie and hurt you.
*/

JE SUIS DÉSOLÉ!!!! Je ne pouvais pas m'en empêcher .....!

Et un autre, que j'admets ne pas avoir réellement sorti dans la nature, même si je suis très tenté de le faire dans l'une de mes classes moins intuitives:

// 
// Dear maintainer:
// 
// Once you are done trying to 'optimize' this routine,
// and have realized what a terrible mistake that was,
// please increment the following counter as a warning
// to the next guy:
// 
// total_hours_wasted_here = 42
// 
Jens Roland
la source
2
// Cher programmeur // // Votre code s'exécute désormais plus lentement maintenant que j'ai corrigé tous les bogues que vous avez introduits. // Mais vos optimisations ont certainement aidé.
DevinB
2
+.5 pour Rickrolling dans les commentaires, +.5 pour total_hours. Génial
Wayne Werner
3
La première fois que j'ai été vraiment RickRolled - et c'était drôle. Quand je vois des liens vers YouTube, je m'attends toujours à être RickRolled (camel cased English !!), mais je ne m'attendais jamais à être RickRolled dans les commentaires de code.
Vincent McNabb
4
total_hours_wasted_here = -32768, que dois-je faire? je pense que quelque chose est cassé.
Behrooz
8
Veuillez arrêter de "mettre à jour" le compteur. Il ne vaut pas cognant cette question sur la première page encore une fois .
Michael Myers
1055
Exception up = new Exception("Something is really wrong.");
throw up;  //ha ha
ス ー パ ー フ ァ ミ コ ン
la source
5
J'ai lu tous les commentaires de haut en bas, me demandant ce que les gens voulaient dire quand ils disaient "craqué, lire celui-ci" ou "craquer, lire celui-là". Bien. Je viens de craquer en lisant celui-ci ...
Daren Thomas
37
Littéralement fait LOL à l'intelligence et à la puérilité combinées de celui-ci.
David Koelle
2
classe MonkeyPoo étend l'exception {}; ... lancer un nouveau MonkeyPoo (); // parce que c'est tellement plus amusant à lancer qu'une exception
Adam Rosenfield
2
Je vais commencer à utiliser à la place d'ex maintenant XD
Ammar
23
Lorsque je me réveille d'un sommeil vraiment profond, mon QI chute à environ 25 et mon esprit va dans des endroits extrêmement étranges. Une fois, après une longue période d'écriture java, je me suis réveillé au milieu de la nuit, me sentant très malade, et je suis parti en courant dans la salle de bain. Alors que je vomissais dans les toilettes, la seule chose à laquelle je pouvais penser était "Je me demande quelle exception je lance en ce moment ..."
Frank Farmer
1052
//When I wrote this, only God and I understood what I was doing
//Now, God only knows
johnc
la source
175
C'est une phrase de Karl Weierstrass, le mathématicien qui nous a donné la merveilleuse définition de continuité epsilon et delta.
Edwin Jarvis
3
Weierstrass l'indifférenciable?
Peter Wone
4
@Augusto, avez-vous une source pour l'attribution de cette phrase à Weierstrass? J'aimerais savoir de quoi il parlait.
Kevin
1048
stop(); // Hammertime!
Tuoski
la source
8
Je l'aime. Da da da DA, da DA, da DA, c'est fini (David Spade, SNL, Weekend Update)
MrBoJangles
83
Arrêtez(); // collaborez, écoutez!
Erik Forbes
24
xkcd.com/210
puetzk
2
Arrêtez(); // quel est ce son?
Yuval
2
Arrêtez(); //! Au nom de l'amour. Avant de me briser le cœur.
1030

Cela semble empêcher les crétins de salir mon code ...

// Autogenerated, do not edit. All changes will be undone.
Ash
la source
7
Me fait souhaiter des favoris SO pris en charge sur les réponses individuelles
AviD
3
@AviD Vous pouvez marquer stackoverflow.com/questions/184618/…
alex
@alex, eh bien, maintenant ... Quoi qu'il en soit, je voulais dire la même chose que vous pouvez marquer une question comme favorite ...
AviD
@AviD Oui, je sais, suggérant simplement une solution de contournement.
alex
3
Je pense qu'ils vont gâcher votre code de toute façon: il dit qu'il va se réparer, alors pourquoi ne pas le casser pour des coups de pied?
Mateen Ulhaq
946
// sometimes I believe compiler ignores all my comments
Sergey Kornilov
la source
26
J'espère que le compilateur ignore les commentaires de cette personne.
Programmeur Windows
86
// Comme je n'ai jamais eu de réponse du compilateur, je pense que c'est vrai.
Liwen
40
Je pense que c'est censé être ironique ...
Neil Barnwell
52
rire , c'est l'avenir, les compilateurs lisent les commentaires juste pour s'assurer qu'ils n'ont pas mal compris ;-D
sharkin
4
// # reply_from_compiler vous aimez clippy, n'est-ce pas?
Carl
930
// I dedicate all this code, all my work, to my wife, Darlene, who will 
// have to support me and our three children and the dog once it gets 
// released into the public.
Sharkin
la source
169
Est-ce quelque part sur le code source de Duke Nukem Forever? ;)
Adhip Gupta
1
Je ne comprends pas, qu'est-ce qui est si drôle?
hasen
11
Il dédie le code ci-dessous à sa femme, même s'il sait que c'est si mauvais que ça va le faire virer ou faire fermer son entreprise. :)
Robert P
390
Pourquoi le chien sera-t-il rendu public?
Nosredna
1
@Nosredna, merci pour un commentaire si drôle! @hasen j, le code a été écrit si mal que le "programmeur" perdra très probablement son emploi, et donc sa femme devra subvenir aux besoins de la famille.
Jamol
911
//Code sanitized to protect the foolish.
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.Web.UI;

namespace Mobile.Web.Control
{
    /// <summary>
    /// Class used to work around Richard being a fucking idiot
    /// </summary>
    /// <remarks>
    /// The point of this is to work around his poor design so that paging will 
    /// work on a mobile control. The main problem is the BindCompany() method, 
    /// which he hoped would be able to do everything. I hope he dies.
    /// </remarks>
    public abstract class RichardIsAFuckingIdiotControl : MobileBaseControl, ICompanyProfileControl
    {
        protected abstract Pager Pager { get; }

        public void BindCompany(int companyId) { }

        public RichardIsAFuckingIdiotControl()
        {
            MakeSureNobodyAccidentallyGetsBittenByRichardsStupidity();
        }

        private void MakeSureNobodyAccidentallyGetsBittenByRichardsStupidity()
        {
            // Make sure nobody is actually using that fucking bindcompany method
            MethodInfo m = this.GetType().GetMethod("BindCompany", BindingFlags.DeclaredOnly | 
                BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
            if (m != null)
            {
                throw new RichardIsAFuckingIdiotException("No!! Don't use the fucking BindCompany method!!!");
            }
            // P.S. this method is a joke ... the rest of the class is fucking serious
        }

        /// <summary>
        /// This returns true if this control is supposed to be doing anything
        /// at all for this request. Richard thought it was a good idea to load
        /// the entire website during every request and have things turn themselves
        /// off. He also thought bandanas and aviator sunglasses were "fuckin' 
        /// gnarly, dude."
        /// </summary>
        protected bool IsThisTheRightPageImNotSureBecauseRichardIsDumb()
        {
            return Request.QueryString["Section"] == this.MenuItemKey;
        }

        protected override void OnLoad(EventArgs e)
        {
            if (IsThisTheRightPageImNotSureBecauseRichardIsDumb())
            {
                Page.LoadComplete += new EventHandler(Page_LoadComplete);
                Pager.RowCount = GetRowCountBecauseRichardIsDumb();
            }
            base.OnLoad(e);
        }

        protected abstract int GetRowCountBecauseRichardIsDumb();
        protected abstract void BindDataBecauseRichardIsDumb();

        void Page_LoadComplete(object sender, EventArgs e)
        {
            BindDataBecauseRichardIsDumb();
        }

        // the rest of his reduh-ndant interface members
        public abstract string MenuItemName { get; set; }
        public abstract string MenuItemKey { get; set; }
        public abstract bool IsCapable(CapabilityCheck checker, int companyId);
        public abstract bool ShowInMenu { get; }
        public virtual Control CreateHeaderControl()
        {
            return null;
        }
    }
}

Mise à jour: l'auteur original du code s'est révélé lui- même, je dois donc rendre hommage à son échec Dan McKinley quitté l'entreprise avec laquelle j'étais avec peu de temps après avoir commencé, et il parle davantage du code, expliquant certains antécédents et quelques autres «WTF» que «Richard» a écrit.

Tom Ritter
la source
27
C'est criblé d'obscénités, mais j'ai littéralement ri dans mon cube tout le temps de le lire.
dira ce que
241
la censure craint. rapportez l'original!
coder1
58
Annulées. Nous sommes tous des adultes ici. Si le code d'origine avait été "nettoyé", vous ne vous en seriez jamais suffisamment souvenu pour le publier ici.
JosephStyons
56
Ce sera encore plus drôle si un client voit le nom de la classe dans une trace de pile.
finnw
5
VEUILLEZ NE PAS RETOURNER À LA VERSION NSFW - l'auteur a explicitement accepté la version SFW aux révisions 3 et 6.
Adam Davis
825
// somedev1 -  6/7/02 Adding temporary tracking of Login screen
// somedev2 -  5/22/07 Temporary my ass
Rohit
la source
79
Ah, les bonnes solutions temporaires permanentes :)
Michael Stum
17
Il n'y a rien d'aussi permanent que temporaire !!!
Microkernel
727
// drunk, fix later

J'aurais aimé plaisanter. Et connaissant le développeur qui a écrit le code, je pense qu'il le pensait littéralement.

Daniel Papasian
la source
258
C'est ridicule, qui écrit des commentaires quand ils sont ivres.
Jiminy
66
@Jiminy: Sérieusement! Quand je code ivre, je me réveille avec un code magnifique que je ne comprends malheureusement pas.
JoshJordan
22
Ohh ... Si tu ne le comprends pas, ça doit être magnifique!
Anders Hansson
14
haha !!! Je l'ai fait juste pour le plaisir: j'ai salué mon dépôt local de subversion pour 'ivre', et j'ai trouvé un commentaire de validation dont je ne me souviendrais pas: "Fonctionne à nouveau, en quelque sorte. Eh bien ... je suis ivre!"
ivan_ivanovich_ivanoff
14
ha ha, "..somehow un BAC entre 0,129% et 0,138% confère une capacité de programmation surhumaine ..." xkcd.com/323
Alpha Codemonkey
719
// Magic. Do not touch.
Jason Sundram
la source
20
Magie = fragile, peut-être?
MrBoJangles
44
Me le rappelle: catb.org/esr/jargon/html/magic-story.html
Simon Howard
5
J'ai dû l'écrire tant de fois - surtout pour me rappeler que "si vous touchez le code suivant sans vraiment savoir ce que vous faites, de mauvaises choses se produiront!"
Shalom Craimer
6
@Simon Howard, je ne le toucherais pas seulement s'il disait "More Magic"
DevinB
4
Je me souviens encore d'avoir appris le CS au lycée, où nous avons répondu à nos questions stupides par "Magic!" et le sourire le plus sinistre.
nevets1219
701

#define TRUE FALSE //Happy debugging suckers

Sulik
la source
95
#define NULL (:: rand ()% 2) // serait aussi très bien
Viktor Sehr
33
#define if (if (!
Bart van Heukelom
66
@Bart: Vous ne pouvez pas avoir de demi-parenthèses dans votre code, mais vous pouvez le faire #define if(x) if(!(x))(ou, plus sinistrement #define if while)
Chris Lutz
8
Comme indiqué, cela fonctionnerait en fait cependant: les caractères de commentaire jusqu'à la fin de la ligne s'assurent que les lignes probables où cette macro est utilisée ne seront pas compilées. Par exemple: a = TRUE;se traduira par a = FALSE // Happy debugging suckers;ce qui conduira à une erreur de compilation car la terminaison ;est maintenant dans les commentaires. Si vous utilisez le commentaire de bloc, /* Eat this */cela fonctionnera.
rix0rrr
6
#define struct unionest très utile dans les systèmes à mémoire limitée.
msw
640
// I'm sorry.
Greg D
la source
179
(Le code qui a suivi m'a fait pleurer.)
Greg D
20
mec, je veux voir le code qui a suivi ...
Erik Forbes
33
// Vous êtes pardonné. Allez en paix mon fils.
Mark Allen,
52
Cela devrait être un commentaire standard dans les modèles par défaut générés par MSFT
Alexandre Brisebois
1
vraiment, quel est le code qui suit ça ???
chakrit
636
return 1; # returns 1
Latéral
la source
32
Classique! Mais j'aime encore mieux celui-ci: "i ++; // augmenter i de 1"
steffenj
71
Qui sait s'il #DEFINE 1 comme autre chose ...
icelava
13
Je souhaite que des commentaires comme celui-là ne me soient pas familiers.
Drew Dormann
6
J'ai beaucoup vu ça. Je connais beaucoup de codeurs qui écrivent leurs fonctions avec des commentaires, puis remplissent le code ci-dessous / à côté de chaque commentaire. Il est très facile d'écrire de grandes fonctions commerciales, mais vous vous retrouvez parfois avec des commentaires assez détaillés.
Bip bip le
88
# renvoie un quoi? Sois plus précis.
Ozan
591
/* This is O(scary), but seems quick enough in practice. */ 

suivi de quatre boucles for imbriquées

Draemon
la source
33
pfft, c'est seulement N ^ 4 le plus probable, pas aussi mauvais que 4 ^ N ou N!
tloach
14
J'ai une fois rencontré une situation avec des boucles imbriquées à 8 profonds. L'autonomie a été mesurée en heures.
Loren Pechtel
8
J'avais un algorithme O (n) avec un réseau RTT de 500 ms dans sa boucle interne. n> 100k. Aie.
geofftnz
6
Il y a une qualité de rachat: ils savent au moins ce qu'est la grosse terminologie O. Espérons que chaque boucle passe sur un très petit N :-D
Jon Smock
27
Je travaille avec quelqu'un qui dirait: "O (MFG), s'il vous plaît"
Jason Orendorff
589
// Replaces with spaces the braces in cases where braces in places cause stasis 
   $str = str_replace(array("\{","\}")," ",$str);
Lance Kidwell
la source
34
+1 - Génie pur. Cela devrait aller sur un t-shirt ou quelque chose comme ça :-)
Rook
71
Le Dr Seuss écrit du code? +1!
Blorgbeard est sorti le
11
A besoin de deux syllabes de plus à la fin ...
Michael Myers
88
Je viens d'ouvrir les commentaires pour dire qu'il a besoin de deux syllabes de plus, mais apparemment je me suis battu de trois mois.
Michael Myers
15
Je ne suis pas d'accord avec la nécessité de syllabes supplémentaires, le compteur est parfait tel quel. Cinq groupes de trois syllabes chacun.
KevDog
542

Cela en dit long sur notre métier, quand on nous interroge sur le "meilleur commentaire", nous répondons tous avec les pires commentaires que nous pouvons trouver ...

rlerallut
la source
67
Je suis entièrement d'accord avec votre commentaire selon lequel les commentaires sont rarement nécessaires.
harpo
16
Dépend des commentaires. Même les langages "auto-documentés" peuvent bénéficier de commentaires, tels que Python. Je déteste avoir à parcourir le code pour comprendre ce qui se passe, quand une simple phrase peut me dire.
crystalattice
32
Je ne suis pas d'accord sur le fait que les commentaires ne sont pas nécessaires. Il y a des moments où un simple commentaire de "cadrage" peut donner un sens à toute une série de codes. Par exemple, si vous utilisez un algorithme sophistiqué pour échapper à la complexité temporelle d'un algorithme de force brute, une référence peut être essentielle.
Mark Brittingham
83
Le code dit quoi ... les commentaires disent pourquoi!
Richard Ev
3
Je ne pourrais être plus d'accord avec "Richard E". Les commentaires sont destinés à dire à votre avenir * (collègues, examinateurs, vous-même) pourquoi avez-vous choisi de faire les choses de manière méchante au lieu d'une autre Je ne suis pas pour jeter des commentaires partout, mais parfois ils devraient être obligatoires.
Danita
525
long john; // silver
Sean
la source
6
Maïs pur. Voilà pourquoi je l'aime.
MrBoJangles
6
Totalement craqué aussi. Je pense que mon code est maintenant trop ennuyeux.
Wonderchook
12
C'est peut-être moi, mais cela me fait craquer à chaque fois double d.
Kevin
1
Merde, je pensais à la manière Ether de en.wikipedia.org/wiki/Long_John_Silver , j'ai faim.
Tek
508
Catch (Exception e) {
 //who cares?
} 
Randyaa
la source
11
Celui-ci m'a fait rire comme un mental
Tablette
68
J'ai vu la même chose avec // se déplacer, rien à voir ici.
Ferruccio
6
J'ai tellement ri de celui-ci.
Franck
9
Je dois admettre que je l'ai fait à plusieurs reprises, car parfois, cela n'a pas d'importance.
NotMe
17
Wow, j'écris ce commentaire tout le temps. Je n'ai jamais pensé que c'était drôle, je pensais que c'était une déclaration sérieuse.
Jay
496
/**
 * Always returns true.
 */
public boolean isAvailable() {
    return false;
}

Ne comptez jamais sur un commentaire ...

martinus
la source
85
Je le dis toujours à mes collègues. "Les commentaires ne courent pas !!"
OscarRyz
15
Je pense que vous vouliez dire "ne comptez jamais sur le code". Je suis sûr que les spécifications, la conception et les exigences nécessitaient un code retour ou vrai :)
gbjbaanb
ressemble à quelque chose que vous verriez sur l'édition techie de failblog.org
BobC
5
Des choses comme cela se produisent réellement, les gens ne prennent pas la peine de maintenir la documentation à jour avec les changements même si elle est juste au-dessus de la fonction.
Henk
25
... #define false true?
nouveau123456
457
/*
 * You may think you know what the following code does.
 * But you dont. Trust me.
 * Fiddle with it, and youll spend many a sleepless
 * night cursing the moment you thought youd be clever
 * enough to "optimize" the code below.
 * Now close this file and go play with something else.
 */ 
PoppaVein
la source
32
Cela me rappelle un type qui a juré qu'il pourrait optimiser un algorithme de démonstration de théorèmes mécaniques que j'ai écrit il y a des années dans un projet d'IA. Il a amélioré les performances mais le code n'a pas fonctionné ... ce qu'il a juré être ma faute.
Mark Brittingham
Hmm, n'ai-je pas vu celui-ci quelque part?
bzlm
6
@Mark Il a seulement dit qu'il optimiserait le temps, il n'a rien dit sur la fonctionnalité = P
DevinB
98
Si cela ne doit pas fonctionner, je peux optimiser n'importe quel code pour un runtime de zéro.
Michael Borgwardt le
9
C'est à cela que sert le contrôle de code source. Perdez quelques heures à essayer de l'optimiser, puis si cela ne fonctionne pas, revenez en arrière.
Kibbee
429
try {

} finally { // should never happen 

}
gedevan
la source
15
++. d'autres dans mon entreprise écrivent tout le temps!
CVertex
17
J'ai vu ce commentaire (et je l'ai même écrit moi-même) dans le passé, pour des choses qui ne devraient jamais se produire (mais juste au cas où, voici le code pour gérer l'erreur). La partie la plus drôle est que les ti sont placés dans un bloc enfin, ce qui signifie que cela devrait toujours arriver ...
Troy Howard
32
Oui, c'était la blague. =)
Erik Forbes
15
Si vous avez un appel System.exit () dans le bloc try, alors OUI, le finalement ne devrait jamais arriver!
Romain Linsolas
6
Raison n ° 984 pour utiliser Debug.Assert (). ;)
Scott Hanselman
411

De: https://github.com/zepouet/Xee-xCode-4.5/blob/master/XeePhotoshopLoader.m#L108

// At this point, I'd like to take a moment to speak to you about the Adobe PSD
// format. PSD is not a good format. PSD is not even a bad format. Calling it
// such would be an insult to other bad formats, such as PCX or JPEG. No, PSD
// is an abysmal format. Having worked on this code for several weeks now, my
// hate for PSD has grown to a raging fire that burns with the fierce passion
// of a million suns.
//
// If there are two different ways of doing something, PSD will do both, in
// different places. It will then make up three more ways no sane human would
// think of, and do those too. PSD makes inconsistency an art form. Why, for
// instance, did it suddenly decide that *these* particular chunks should be
// aligned to four bytes, and that this alignement should *not* be included in
// the size? Other chunks in other places are either unaligned, or aligned with
// the alignment included in the size. Here, though, it is not included. Either
// one of these three behaviours would be fine. A sane format would pick one.
// PSD, of course, uses all three, and more.
//
// Trying to get data out of a PSD file is like trying to find something in the
// attic of your eccentric old uncle who died in a freak freshwater shark
// attack on his 58th birthday. That last detail may not be important for the
// purposes of the simile, but at this point I am spending a lot of time
// imagining amusing fates for the people responsible for this Rube Goldberg of
// a file format.
//
// Earlier, I tried to get a hold of the latest specs for the PSD file format.
// To do this, I had to apply to them for permission to apply to them to have
// them consider sending me this sacred tome. This would have involved faxing
// them a copy of some document or other, probably signed in blood. I can only
// imagine that they make this process so difficult because they are intensely
// ashamed of having created this abomination. I was naturally not gullible
// enough to go through with this procedure, but if I had done so, I would have
// printed out every single page of the spec, and set them all on fire. Were it
// within my power, I would gather every single copy of those specs, and launch
// them on a spaceship directly into the sun.
//
// PSD is not my favourite file format.
halcy
la source
1
La ligne juste après cela et son commentaire en tête du gâteau. Santé mentale? Quelle raison? Le format a tout mangé ...
Kim Reece
66
s / PSD / Internet Explorer / g. s / format de fichier / navigateur Web / g. Maintenant, cela correspond à mes pensées.
TJ L
10
Je plains ce programmeur d'avoir à traverser une telle douleur !!! Mais génial commentaire. A versé son cœur.
Microkernel
4
Cette ligne: // PSD n'est pas mon format de fichier préféré. en fait un classique.
joedevon
387
const int TEN=10; // As if the value of 10 will fluctuate... 
Mike
la source
136
Sur le marché actuel, 10 a maintenant une valeur de seulement 9.
Steve Fallows
13
Peut-être qu'un jour nous ferons évoluer plus de doigts ...
Loren Pechtel
59
qu'en est-il des très grandes valeurs de 10?
Mikeage
184
const int TEN = 11; // La mienne passe à onze
dub
18
Appeler Fortran à partir de C - Fortran ne fait que l'appel par référence, vous avez donc besoin de variables pour toutes les constantes.
Martin Beckett
364
    #Christmas tree initializer  
    toConnect = []  
    toRead =   [  ]  
    toWrite = [    ]   
    primes = [      ]  
    responses = {}  
    remaining = {}  
Leo
la source
25
C'est une victoire. Une énorme victoire ...
Cyclone
16
OK, je vais utiliser cette prochaine fois j'ai besoin de quatre tableaux vides et deux hachages!
Josh
Urgh. Un "ÉCHEC!" Bruyant à l'auteur de ne pas savoir s'il utilise une langue sans format ou non.
TheBlastOne
Je doute qu'il ne connaissait pas la langue sans format. C'est une bonne blague :-)
Román
362

Vers le milieu d'un xslt de 30 pages

<!-- Here be dragons  -->
Goran
la source
8
J'essaie toujours de comprendre comment commenter un XSLT d'une manière logique.
rjzii
78
Nous avons vraiment besoin de plus de dragons dans notre code.
Jon Smock
1
Au départ, j'ai pensé à en.wikipedia.org/wiki/21st_Century_Compilers
chakrit
6
@annakata vous pensez que c'est mauvais, l'autre jour, quelqu'un a demandé de l'aide pour gérer un fichier xml de 31 Go. J'ai crié d'angoisse.
Dana the Sane
1
Quelqu'un m'a appelé?
Troggy
353

dans une méthode de ligne 2000 sans commentaires

{ 
  { 
    while (.. ){ 
      if (..){
          }
      for (.. ){ 
          }
         .... (just putting in the control flow here, imagine another few hundred ifs)
      if(..)   {
            if(..)     {
                   if(..)   {
                ...
                (another few hundred brackets)
                       }
                  }
         } //endif

(J'ai en fait jeté un coup d'œil à tous les crochets un jour juste pour voir à quel point c'était mauvais et, sans formatage, j'ai obtenu ceci:

{{{{}}{}{}{}{}}{{}{{}{}{}{}{}{}{{}{}}{}{}{{}{}{}{}{}{}{}{}{}{}{}{{}}}{{}{{}}{{{}}}{{}{}{}{}{}{}{}{{}}{}{{{}}{}{{}{}}{{{}}{}{}{}{}}{{}}}{}{{}{}{}{{}{{}}{}}{{}}}{{}}{{}}{{}}{}{{}}{{}}{{}}{{}{}{}}{}{}{{{}}{{}}}{}{}{}{}}{{{}{{}{}{}{{}{}{}{}{}{}}{}}{{}}{{}{}}}{{}}{{}}}{{}}{{}}{}{}{}{}{{}}{{}{}{}{}}}}{}{}}{{}{{{}{}{}{}}}}{{}{{{}}}}{{}{{{}{{}}{}{{}}{}{{}{}}{{}}{}{{}}}{{}}}}{{}{}{}{}{}{{{}    {{{{}}{}{}{}{}}{{}{{}{}{}{}{}{}{{}{}}{}{}{{}{}{}{}{}{}{}{}{}{}{}{{}}}{{}{{}}{{{}}}{{}{}{}{}{}{}{}{{}}{}{{{}}{}{{}{}}{{{}}{}{}{}{}}{{}}}{}{{}{}{}{{}{{}}{}}{{}}}{{}}{{}}{{}}{}{{}}{{}}{{}}{{}{}{}}{}{}{{{}}{{}}}{}{}{}{}}{{{}{{}{}{}{{}{}{}{}{}{}}{}}{{}}{{}{}}}{{}}{{}}}{{}}{{}}{}{}{}{}{{}}{{}{}{}{}}}}{}{}}{{}{{{}{}{}{}}}}{{}{{{}}}}{{}{{{}{{}}{}{{}}{}{{}{}}{{}}{}{{}}}{{}}}}{{}{}{}{}{}{{{}{}{{}}{}}}{}}{{}}{{}{}}{{}{{}{{}}}}{{{}{{{}}}}}{{{{{}}}}}{}{}{}{{{{}}}{}{}}{{}{{}}}}{}{{}}{}}}{}}{{}}{{}{}}{{}{{}{{}}}}{{{}{{{}}}}}{{{{{}}}}}{}{}{}{{{{}}}{}{}}{{}{{}}}}

L'endif est apparu autour de la ligne 800)

Steve B.
la source
180
code tour-de-france
Andreas Petersson
7
c'est digne du quotidien ou de l'échec.com!
deadbug
67
On dirait Lisp!
endian
8
Ce commentaire est probablement là pour corriger un bogue du compilateur. : |
Rob Howard
49
Niveau de complexité cyclomatique de OH SHIIIIIIIII
353
long long ago; /* in a galaxy far far away */ 
Juliano
la source
1
est-ce que cela fonctionne réellement? dans quelle langue?
mauris
16
@Mauris: C'était à l'origine une extension C et C ++ pour les entiers 64 bits, prise en charge par de nombreux fournisseurs. Puis prise en charge normalisée C99 et C ++ 0x: en.wikipedia.org/wiki/Long_long
Juliano
Cela me fait penser aux pointeurs lointains et proches que nous avons utilisés en terrain 16 bits. :)
Macke
1
Cela fonctionne toujours parfaitement bien. Nous l'avons d'abord mis dans notre compilateur chez Convex il y a environ 25 ans parce que DMR a suggéré que cela devrait être le nom de nos entrées 64 bits.
tchrist
352
//This code sucks, you know it and I know it.  
//Move on and call me an idiot later.
KevDog
la source
26
Honnêtement en commentaire!
Mitchel Sellers,
46
J'adore l'honnêteté.
Jeff Schumacher
2
La première étape de l'amélioration consiste à reconnaître la carence.
icelava
acceptez vos erreurs avant que les autres ne les exagèrent :)
naveen
324
// If this comment is removed the program will blow up 
John Chuckran
la source
201
Il y a longtemps, j'ai accidentellement corrigé un défaut de segmentation dans Java3D en ajoutant un commentaire. Il était 100% reproductible; si j'ai supprimé le commentaire, il s'est écrasé. Tant que le commentaire était là, cela a bien fonctionné. Je suppose que c'était un problème de timing bizarre, mais je n'ai jamais compris exactement ce qui se passait.
DNS
54
Magic / More Magic
DevinB
16
C'est un peu comme un virus. Il contient du contenu destiné à se protéger. C'est comme l'ADN indésirable qui réussit à se faire copier.
Charlie Flowers
23
vous devriez comparer le bytecode généré par les 2 versions
JoelFan
13
Il m'a fallu une demi-journée pour comprendre que la fin d'un commentaire C avec \ (utilisé pour marquer la direction dans laquelle nous allons dans un tableau 2D) oblige le compilateur à sauter la ligne suivante.
Tgr