Jaki jest najlepszy komentarz w kodzie źródłowym, jaki kiedykolwiek spotkałeś? [Zamknięte]

360

Jaki jest najlepszy komentarz w kodzie źródłowym, jaki kiedykolwiek spotkałeś?

Robert Harvey
źródło

Odpowiedzi:

1462

Jestem szczególnie winny tego, umieszczając w większości moich projektów konstruktywne komentarze, poezję kodu i małe żarty (chociaż zwykle mam dość rozsądku, aby usunąć coś bezpośrednio obraźliwego przed wydaniem kodu). Oto jeden, który szczególnie lubię, umieszczony daleko, daleko w kiepsko zaprojektowanym „Boskim obiekcie”:

/**
* 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.
*/

PRZEPRASZAM!!!! Po prostu nie mogłem się powstrzymać .....!

I jeszcze jeden, który muszę przyznać, że tak naprawdę nie wypuściłem go na wolność, chociaż mam wielką ochotę to zrobić na jednej z moich mniej intuicyjnych zajęć:

// 
// 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
źródło
2
// Drogi Programatorze // Twój kod działa teraz wolniej, kiedy naprawiłem wszystkie zgłoszone przez Ciebie błędy. // Ale twoje optymalizacje z pewnością pomogły.
DevinB,
2
+.5 za Rickrolling w komentarzach, +.5 za total_hours. Niesamowite
Wayne Werner
3
Po raz pierwszy naprawdę byłem RickRolled - i to było zabawne. Kiedy widzę linki do YouTube, zawsze oczekuję, że będę RickRolled (angielski w wielbłądach !!), ale nigdy nie spodziewałem się, że będę RickRolled w komentarzach do kodu.
Vincent McNabb,
4
total_hours_wasted_here = -32768, co powinienem zrobić? myślę, że coś jest zepsute.
Behrooz
8
Przestań „aktualizować” licznik. Nie warto wpadając na to pytanie na stronie głównej po raz kolejny .
Michael Myers
1055
Exception up = new Exception("Something is really wrong.");
throw up;  //ha ha
ン ー パ ー フ ァ ミ コ ン
źródło
5
Czytam wszystkie komentarze od góry do dołu, zastanawiając się, co ludzie mieli na myśli, mówiąc: „pękli, czytając ten” lub „pękli, czytając ten”. Dobrze. Właśnie pękłem, czytając ten ...
Daren Thomas
37
Dosłownie zrobił LOL z powodu sprytu i dziecinności tego.
David Koelle
2
klasa MonkeyPoo rozszerza wyjątek {}; ... wrzuć nową MonkeyPoo (); // ponieważ rzucanie jest o wiele przyjemniejsze niż wyjątek
Adam Rosenfield
2
Chcę zacząć używać zamiast od teraz na XD
Ammar
23
Kiedy budzę się z naprawdę głębokiego snu, moje IQ spada do około 25, a mój umysł udaje się w bardzo dziwne miejsca. Pewnego razu, po długim okresie pisania java, obudziłem się w środku nocy, czując się dość źle, i pobiegłem do łazienki. Gdy zwymiotowałem do toalety, jedyne, co mogłem pomyśleć, to „zastanawiam się, który wyjątek teraz rzucam ...”
Frank Farmer
1052
//When I wrote this, only God and I understood what I was doing
//Now, God only knows
johnc
źródło
175
To zdanie Karla Weierstrassa, matematyka, który dał nam wspaniałą definicję ciągłości epsilon i delta.
Edwin Jarvis,
3
Weierstrass Niezróżnicowany?
Peter Wone
4
@Augusto, czy masz źródło przypisania tej frazy Weierstrass? Chciałbym wiedzieć, o co mu chodzi.
Kevin
1048
stop(); // Hammertime!
Tuoski
źródło
8
Lubię to. Da da da DA, da DA, da DA, To koniec (David Spade, SNL, Weekendowa aktualizacja)
MrBoJangles,
83
zatrzymać(); // współpracuj, słuchaj!
Erik Forbes,
24
xkcd.com/210
puetzk
2
zatrzymać(); // co to za dzwięk?
Yuval,
2
zatrzymać(); //! W imię miłości. Zanim złamiesz mi serce.
1030

To wydaje się powstrzymywać kretynów od zepsucia mojego kodu ...

// Autogenerated, do not edit. All changes will be undone.
popiołu
źródło
7
Sprawia, że ​​życzę SO obsługiwanych ulubionych odpowiedzi indywidualnych
AviD
3
@AviD Możesz utworzyć zakładkę stackoverflow.com/questions/184618/...
alex
@alex, no cóż, teraz ... W każdym razie miałem na myśli to samo, co możesz oznaczyć jako ulubione ...
AviD
@AviD Tak, wiem, sugeruję tylko obejście.
alex
3
Myślę, że i tak zrujnują twój kod: mówi, że się naprawi, więc dlaczego nie złamać go dla kopnięć?
Mateen Ulhaq,
946
// sometimes I believe compiler ignores all my comments
Sergey Kornilov
źródło
26
Mam nadzieję, że kompilator ignoruje komentarze tej osoby.
programista Windows
86
// Ponieważ nigdy nie otrzymałem odpowiedzi od kompilatora, wierzę, że to prawda.
Liwen,
40
Myślę, że to powinno być ironiczne ...
Neil Barnwell
52
śmiech , to jest przyszłość, kompilatorzy czytają komentarze, aby upewnić się, że się nie zrozumieli ;-D
sharkin
4
// # reply_from_compiler lubisz clippy, prawda?
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.
rekin
źródło
169
Czy jest to gdzieś w kodzie źródłowym Duke Nukem Forever? ;)
Adhip Gupta
1
Nie rozumiem, co jest takie zabawne?
hasen
11
Poświęca poniższy kod swojej żonie, mimo że wie, że jest tak źle, że albo go zwolni, albo sprawi, że jego firma przestanie działać. :)
Robert P
390
Dlaczego pies zostanie wydany publicznie?
Nosredna
1
@Nosredna, dziękuję za tak zabawny komentarz! @hasen j, kod został napisany tak źle, że „programista” najprawdopodobniej straci pracę, a zatem jego żona będzie musiała wesprzeć rodzinę.
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;
        }
    }
}

Aktualizacja: Pierwotny autor kodu sam się wydał, więc muszę przyznać, gdzie jest należny. Dan McKinley opuścił firmę, w której pracowałem krótko po rozpoczęciu działalności, a on mówi więcej o kodzie, wyjaśniając pewne tło i kilka innych „WTF” napisanych przez „Richarda”.

Tom Ritter
źródło
27
Jest to pełne sprośności, ale dosłownie śmiałem się z mojej kostki przez cały czas czytając ją.
willasaywhat
241
cenzura jest do bani. przywróć oryginał!
coder1
58
Wycofana. Wszyscy jesteśmy tutaj dorośli. Gdyby oryginalny kod został „zdezynfekowany”, nigdy nie zapamiętałbyś go na tyle, aby opublikować go tutaj.
JosephStyons,
56
Będzie jeszcze śmieszniej, jeśli klient zobaczy nazwę klasy w śladzie stosu.
finnw 10.10.08
5
PROSZĘ NIE ODWRACAĆ DO WERSJI NSFW - autor wyraźnie zaakceptował wersję SFW w wersji 3 i 6.
Adam Davis,
825
// somedev1 -  6/7/02 Adding temporary tracking of Login screen
// somedev2 -  5/22/07 Temporary my ass
Rohit
źródło
79
Ach, dobre trwałe tymczasowe rozwiązania :)
Michael Stum
17
Nie ma nic tak trwałego jak tymczasowe !!!
Microkernel
727
// drunk, fix later

Chciałbym żartować. I znając programistę, który napisał kod, myślę, że miał na myśli dosłownie.

Daniel Papasian
źródło
258
To niedorzeczne, kto pisze komentarze, gdy są pijani.
Jiminy,
66
@Jiminy: Poważnie! Kiedy piję kod, budzę się ze wspaniałym kodem, którego niestety nie rozumiem.
JoshJordan
22
Ohh ... Jeśli tego nie rozumiesz, musi być wspaniale!
Anders Hansson
14
ha ha!!! Zrobiłem to dla zabawy: przeszukałem moje lokalne repozytorium subversion dla słowa „pijany” i znalazłem jeden komentarz do zatwierdzenia, którego nie pamiętam: „Jakoś znowu działa. Cóż ... jestem pijany!”
ivan_ivanovich_ivanoff
14
ha ha, „.. jakoś BAC między 0,129% a 0,138% nadaje nadludzkim zdolnościom programistycznym ...” xkcd.com/323
Alpha Codemonkey
719
// Magic. Do not touch.
Jason Sundram
źródło
20
Może magia = krucha?
MrBoJangles,
44
Przypomina mi o tym: catb.org/esr/jargon/html/magic-story.html
Simon Howard
5
Tyle razy musiałem to pisać - głównie po to, by przypomnieć sobie, że „jeśli dotkniesz następującego kodu, nie wiedząc naprawdę, co robisz, zdarzają się złe rzeczy!”
Shalom Craimer
6
@ Simon Howard, nie dotknąłbym go tylko, gdyby powiedział „More Magic”
DevinB
4
Nadal pamiętam, jak uczyłem CS w szkole średniej, gdzie na nasze głupie pytania odpowiadała „Magia!” i najbardziej złowieszczy uśmiech.
nevets1219
701

#define TRUE FALSE //Happy debugging suckers

Sulik
źródło
95
# zdefiniować NULL (:: rand ()% 2) // też byłoby całkiem fajnie
Viktor Sehr
33
#
zdefiniować
66
@ Bart: Nie możesz mieć pół parens w swoim kodzie, ale możesz zrobić #define if(x) if(!(x))(lub, bardziej złowieszczo #define if while)
Chris Lutz
8
Jak podano, to faktycznie działałoby: znaki komentarza do końca linii upewniają się, że prawdopodobne linie, w których używane jest to makro, nie zostaną skompilowane. Na przykład: a = TRUE;przetłumaczy, na a = FALSE // Happy debugging suckers;co doprowadzi do błędu kompilacji, ponieważ terminowanie ;jest teraz w komentarzach. Jeśli użyjesz komentarza do bloku /* Eat this */, zadziała.
rix0rrr
6
#define struct unionjest bardzo pomocny w systemach z ograniczoną pamięcią.
msw
640
// I'm sorry.
Greg D.
źródło
179
(Poniższy kod spowodował, że płakałem.)
Greg D
20
człowieku, chcę zobaczyć kod, który nastąpił ...
Erik Forbes,
33
// Przebaczam ci. Idź w pokoju, mój synu.
Mark Allen,
52
Powinien to być standardowy komentarz w domyślnych szablonach generowanych przez MSFT
Alexandre Brisebois,
1
naprawdę, jaki kod następuje po tym ???
czakryt
636
return 1; # returns 1
Boczny
źródło
32
Klasyczny! Ale jeszcze bardziej podoba mi się ten: „i ++; // zwiększyć i o 1”
steffenj 12.10.08
71
Kto wie, czy on #DEFINIUJE 1 jako coś innego ...
icelava
13
Chciałbym, aby takie komentarze były mi nieznane.
Drew Dormann
6
Dużo to widziałem. Znam wielu programistów, którzy usuwają swoje funkcje z komentarzami, a następnie wypełniają kod poniżej / obok każdego komentarza. Ułatwia pisanie dużych funkcji biznesowych, ale czasem pojawiają się dość szczegółowe komentarze.
Sygnał dźwiękowy
88
# zwraca jedno co? Uszczegółów.
Ozan
591
/* This is O(scary), but seems quick enough in practice. */ 

a następnie cztery zagnieżdżone pętle for

Draemon
źródło
33
pfft, to najprawdopodobniej tylko N ^ 4, nie tak blisko jak 4 ^ N lub N!
tloach
14
Kiedyś trafiłem na sytuację, w której pętle były zagnieżdżone na 8 głębokościach. Czas działania mierzono w godzinach.
Loren Pechtel,
8
Miałem algorytm O (n) z 500 ms siecią RTT w jego wewnętrznej pętli. n> 100 tys. Auć.
geofftnz
6
Istnieje cecha zbawcza: wiedzą oni, co to jest duża terminologia O. Mam nadzieję, że każda pętla przebiega przez bardzo małe N :-D
Jon Smock
27
Pracuję z kimś, kto powiedziałby „O (MFG), proszę”
Jason Orendorff,
589
// Replaces with spaces the braces in cases where braces in places cause stasis 
   $str = str_replace(array("\{","\}")," ",$str);
Lance Kidwell
źródło
34
+1 - czysty geniusz. Powinien to być podkoszulek lub coś w tym stylu :-)
Rook
71
Dr Seuss pisze kod? +1!
Blorgbeard jest nieobecny
11
Potrzebuje jeszcze dwóch sylab na końcu ...
Michael Myers
88
Właśnie otworzyłem komentarze, by powiedzieć, że potrzebuje jeszcze dwóch sylab, ale najwyraźniej pobiłem się o trzy miesiące.
Michael Myers
15
Nie zgadzam się z potrzebą dodatkowych sylab, licznik jest idealny, jak jest. Pięć grup po trzy sylaby każda.
KevDog,
542

Mówi wiele o naszym zawodzie, że na pytanie o „najlepszy komentarz” wszyscy odpowiadamy najgorszymi komentarzami, jakie możemy znaleźć ...

rlerallut
źródło
67
Całkowicie zgadzam się z twoim komentarzem, że komentarze są rzadko potrzebne.
harpo
16
Zależy od komentarzy. Nawet języki „samodokumentujące” mogą korzystać z komentarzy, takich jak Python. Nienawidzę konieczności przeszukiwania kodu, aby dowiedzieć się, co się dzieje, kiedy może mi powiedzieć proste zdanie.
crystalattice
32
Nie zgadzam się z: komentarze są niepotrzebne. Czasami prosty komentarz „w ramce” może mieć sens z całą masą kodu. Na przykład, jeśli używasz zaawansowanego algorytmu, aby uniknąć złożoności czasowej algorytmu brutalnej siły, odniesienie może być niezbędne.
Mark Brittingham,
83
Kod mówi, co ... komentarze mówią dlaczego!
Richard Ev,
3
Nie mogłem się bardziej zgodzić z „Richardem E”. Komentarze mają na celu poinformowanie twojej przyszłości * (współpracowników, recenzentów, ciebie), dlaczego zdecydowałeś się robić rzeczy tak niegodziwe, a nie inne. Nie jestem za rozśmieszaniem komentarzy w każdym miejscu, ale czasem powinny być obowiązkowe.
Danita
525
long john; // silver
Sean
źródło
6
Czysta kukurydza. Dlatego mi się podoba.
MrBoJangles,
6
Totalnie spękany. Myślę, że mój kod jest teraz zbyt nudny.
wonderchook
12
Może to ja, ale to mnie psuje za każdym razem double d.
Kevin
1
Cholera, myślałem o en.wikipedia.org/wiki/Long_John_Silver's Ether sposób, jestem głodny.
Tek
508
Catch (Exception e) {
 //who cares?
} 
Randyaa
źródło
11
Ten sprawił, że się roześmiałem jak umysłowo
Tablet
68
Widziałem to samo z // poruszaniem się, nic do zobaczenia tutaj.
Ferruccio,
6
Tak bardzo się z tego śmiałem.
Franck
9
Muszę przyznać, że robiłem to więcej niż jeden raz, ponieważ czasami to po prostu nie ma znaczenia.
NotMe,
17
Wow, cały czas piszę ten komentarz. Nigdy nie uważałem tego za zabawne, myślałem, że to poważne stwierdzenie.
Jay
496
/**
 * Always returns true.
 */
public boolean isAvailable() {
    return false;
}

Nigdy nie polegaj na komentarzach ...

martinus
źródło
85
Zawsze mówię moim współpracownikom. „Komentarze nie działają !!”
OscarRyz
15
Myślę, że miałeś na myśli „nigdy nie polegaj na kodzie”. Jestem pewien, że specyfikacja, projekt i wymagania wymagały kodu zwrotnego lub true :)
gbjbaanb
wygląda jak coś, co można zobaczyć w techie edycji failblog.org
BobC
5
Takie rzeczy faktycznie się zdarzają, ludzie nie zawracają sobie głowy aktualizowaniem dokumentacji, nawet jeśli jest tuż nad funkcją.
Henk,
25
... #define false true?
new123456,
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
źródło
32
Przypomina mi faceta, który przysięgał, że może zoptymalizować algorytm dowodzenia twierdzeń mechanicznych, który napisałem lata temu w projekcie AI. Poprawił wydajność, ale kod nie działał ... co przysięgał, że to moja wina.
Mark Brittingham,
Hmm, nie widziałem tego gdzieś?
bzlm
6
@ Mark Powiedział tylko, że zoptymalizuje czas, nie powiedział nic o funkcjonalności = P
DevinB
98
Jeśli to nie musi działać, mogę zoptymalizować dowolny kod do czasu działania równego zero.
Michael Borgwardt,
9
Po to jest kontrola źródła. Zmarnuj kilka godzin, próbując je zoptymalizować, a następnie, jeśli to nie zadziała, po prostu wycofaj się.
Kibbee
429
try {

} finally { // should never happen 

}
gedevan
źródło
15
++. inni w mojej firmie piszą to cały czas!
CVertex,
17
widziałem ten komentarz (a nawet sam go napisałem), ponieważ rzeczy, które relalyt nigdy nie powinien się wydarzyć (ale na wszelki wypadek, oto kod do obsługi błędu). Najśmieszniejsze jest to, że ti jest umieszczony w końcu bloku, co oznacza, że zawsze powinno się to zdarzyć ...
Troy Howard
32
Tak, to był żart. =)
Erik Forbes,
15
Jeśli masz wywołanie System.exit () w bloku try, to TAK, w końcu nigdy nie powinno się zdarzyć!
Romain Linsolas
6
Powód # 984, aby użyć Debug.Assert (). ;)
Scott Hanselman
411

Od: 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
źródło
1
Tuż po tym wiersz i jego komentarz naprawdę są na topie. Zdrowie psychiczne? Jakie zdrowie psychiczne? Format zjadł wszystko ...
Kim Reece
66
s / PSD / Internet Explorer / g. s / format pliku / przeglądarka internetowa / g. Teraz pasuje do moich myśli.
TJ L
10
Żal mi tego programisty za to, że musiałem przejść przez taki ból !!! Ale niesamowity komentarz. Wylał mu serce.
Microkernel
4
Ta linia: // PSD nie jest moim ulubionym formatem plików. czyni to klasycznym.
dołączył
387
const int TEN=10; // As if the value of 10 will fluctuate... 
Mike
źródło
136
Na dzisiejszym rynku 10 ma teraz wartość tylko 9.
Steve Fallows
13
Może kiedyś wyewoluujemy więcej palców ...
Loren Pechtel,
59
co z bardzo dużymi wartościami 10?
Mikeage
184
const int TEN = 11; // Mój idzie do jedenastej
dub.
18
Wywoływanie Fortran z C - Fortran robi tylko wywołanie przez referencję, więc potrzebujesz zmiennych dla wszystkich stałych.
Martin Beckett,
364
    #Christmas tree initializer  
    toConnect = []  
    toRead =   [  ]  
    toWrite = [    ]   
    primes = [      ]  
    responses = {}  
    remaining = {}  
Leo
źródło
25
To jest zwycięstwo. Ogromna wygrana ...
Cyklon
16
OK, zamierzam użyć tego następnym razem, gdy potrzebuję czterech pustych tablic i dwóch skrótów!
Josh
Urgh. Głośny „AWARIA!” do autora za to, że nie wie, czy używa języka bez formatu, czy nie.
TheBlastOne
Wątpię, żeby nie wiedział o języku bez formatu. To niezły żart :-)
Román
362

Około połowy 30-stronicowego xslt

<!-- Here be dragons  -->
Goran
źródło
8
Wciąż próbuję wymyślić, jak skomentować XSLT w sposób, który ma sens.
rjzii,
78
Naprawdę potrzebujemy więcej smoków w naszym kodzie.
Jon Smock
1
Początkowo myślałem o en.wikipedia.org/wiki/21st_Century_Compilers
chakrit
6
@annakata, uważasz, że to źle, pewnego dnia ktoś poprosił o pomoc w radzeniu sobie z plikiem xml 31GB. Płakałem w udręce.
Dana the Sane
1
Czy ktoś do mnie zadzwonił?
Troggy,
353

w całkowicie nieskomentowanej metodzie 2000

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

(Pewnego dnia wyłożyłem wszystkie nawiasy, żeby zobaczyć, jak źle było, i bez formatowania dostałem to:

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

Endif pojawił się około linii 800)

Steve B.
źródło
180
kod tour-de-france
Andreas Petersson
7
to jest godne thedailyworsethanfailure.com!
deadbug
67
Wygląda jak Lisp!
endian
8
Ten komentarz prawdopodobnie istnieje, aby naprawić błąd kompilatora. : |
Rob Howard,
49
Poziom złożoności cyklicznej OH SHIIIIIIIII
353
long long ago; /* in a galaxy far far away */ 
Juliano
źródło
1
czy to faktycznie działa? w jakim języku?
Mauris
16
@Mauris: Pierwotnie było to rozszerzenie C i C ++ dla 64-bitowych liczb całkowitych, które obsługiwało wielu dostawców. Następnie znormalizowane wsparcie dla C99 i C ++ 0x: en.wikipedia.org/wiki/Long_long
Juliano
Sprawia, że ​​myślę o wskaźnikach dalekich do bliskich, których używaliśmy w 16-bitowym lądzie. :)
Macke
1
Nadal działa idealnie dobrze. Po raz pierwszy umieściliśmy go w naszym kompilatorze w Convex około 25 lat temu, ponieważ DMR zasugerował, że taka powinna być nazwa naszych 64-bitowych int.
tchrist
352
//This code sucks, you know it and I know it.  
//Move on and call me an idiot later.
KevDog
źródło
26
Szczerze w komentarzu!
Mitchel Sellers
46
Kocham szczerość.
Jeff Schumacher
2
Pierwszym krokiem do poprawy jest uznanie niedoboru.
icelava,
zaakceptujcie swoje błędy, zanim inni wyolbrzymiają je :)
naveen
324
// If this comment is removed the program will blow up 
John Chuckran
źródło
201
Dawno temu przypadkowo naprawiłem awarię w Jav3D, dodając komentarz. Było w 100% powtarzalne; jeśli usunę komentarz, zawiesi się. Tak długo, jak komentarz był obecny, działał dobrze. Zakładam, że był to dziwny problem z timingiem, ale nigdy nie do końca zrozumiałem, co się dzieje.
DNS
54
Magic / More Magic
DevinB
16
To jest trochę jak wirus. Zawiera treści, które mają się chronić. To jest jak śmieciowe DNA, które dobrze się kopiuje.
Charlie Flowers
23
powinieneś porównać kod bajtowy wygenerowany przez 2 wersje
JoelFan
13
Pół dnia zajęło mi zorientowanie się, że zakończenie komentarza C \ (używanym do zaznaczenia kierunku, w którym zmierzamy w tablicy 2D) powoduje, że kompilator przeskakuje do następnego wiersza.
Tgr