Sie müssen nicht programmieren, dieses tolle Rant zu schätzen verstehen


Linus Torvalds ist eine legendäre Software-Ingenieur und Gründer des Linux-Kernels. Er kann nicht auch schlechten Code stehen, also hinsetzen, schnappen Sie sich das Popcorn und genießen.

Torvalds veröffentlicht diese Reaktion auf einen neuen Code, der in Linux-Version 4.3 aufgetaucht. Es ist sehr technisch, aber auch wenn Sie nicht die Nuancen zu erfassen, die feinen fluchen kann werden von allen geschätzt:

Christus-Menschen. Dies ist nur sh * t

. Der Konflikt bekomme ich ist aufgrund der dummen Mist in neuen Gcc-Header-Datei. Aber was macht mich verärgert ist, dass der Mist aus völlig falschen Gründen.

Dies ist der alte Code in net/ipv6/ip6_output.c:

MTU-= auwählen + Sizeof (Struct Frag_hdr);

und das ist der neue "verbesserte" Code, der ausgefallene Sachen, die magische integrierte Compiler unterstützen will und dumme Wrapperfunktionen verwendet für wenn es nicht vorhanden ist:

Wenn (Overflow_usub (Mtu, auwählen + Sizeof (Struct Frag_hdr) & Mtu) ||

MTU<=>

GOTO Fail_toobig;

und wer glaubt, dass die oben (a) lesbar (b) eine effiziente (auch mit der magischen Compiler-Unterstützung) (c) besonders sicher ist einfach inkompetent und Mittagspause.

Der obige Code ist sh * t, und es wird Scheiße Code generiert. Es sieht schlecht aus, und es gibt keinen Grund dafür.

Der Code könnte * leicht * mit nur eine einheitliche und verständliche bedingte getan worden und der Compiler würde eigentlich besseren Code generiert, und der Code würde besser aussehen und Moreunderstandable. Warum ist dies nicht

Wenn (Mtu< hlen="" +="" sizeof(struct="" frag_hdr)="" +="">

GOTO Fail_toobig;

MTU-= auwählen + Sizeof (Struct Frag_hdr);

Das ist die gleiche Anzahl von Zeilen, verwendet keine verrückten Hilfsfunktionen, dass niemand weiß, was sie tun, und ist viel offensichtlicher, was es wirklich tut. Ich garantiere, dass die zweite deutlicher Version einfacher ist zu lesen und zu verstehen. Hat jemand wirklich wollen, dies zu bestreiten?

Wirklich. Gib mir * ein * Grund, warum es war geschrieben in diese idiotische Weise mit zwei verschiedenen Bedingungen, und eine glänzende neue nicht dem Standard entsprechende Funktion, die will bestimmten Compiler unterstützt, sogar halbwegs vernünftigen Code generieren, und sogar dann schlechter Code generiert? Eine glänzende Funktion, dass wir nie und nimmer irgendwo anders gebraucht, und zwar nur Compiler-Masturbation.

Und ja, man konnte noch Überlauf Probleme haben, wenn der ganze "auwählen + Xyz" Ausdruck überläuft, aber ehrlich gesagt, hatte der Code "overflow_usub()", die auch. Also wenn Sie, dass befürchten, tun nicht dann Sie verdammt gut das richtige zu.

Ich sehe wirklich keinen Grund für diese Art von kompletten idiotischen Mist.

Sag mir, warum. Weil ich nicht diese Art von völlig verrückt Sachen ziehen, die Konflikte rc7 Zeitpunkt generiert, und das scheint absolut keinen Grund dafür eine idiotische unlesbar durcheinander haben.

Der Code scheint * ausgelegt *, das neue "overflow_usub()" Code zu verwenden. Es scheint ein Vorwand, um diese Funktion zu verwenden.

Und es ist ein f * Cking schlechte Ausrede für die Gehirnverletzung.

Tut mir leid, aber wir nicht wie die idiotische neue Schnittstellen wie diese idiotische neue Code hinzufügen.

Ja, ja, wenn dies innerhalb der Netzwerkschicht geblieben wäre würde ich nie bemerkt haben. Aber da ich * habe * bemerken, ich möchte wirklich nicht, dies zu ziehen. In der Tat, ich will es klar, * alle * code, wie das ist völlig inakzeptabel. Wer glaubt, dass Code wie diesen ist "sicher" und "sicher", weil sie ausgefallene Überlauf Erkennung Funktionen verwendet ist so weit zum Mittagessen, das ist es nicht sogar lustig. Alles, was diese Art von Scheiße tut ist, machen dem Code eine unlesbare Durcheinander mit Code, dass kein vernünftiger Mensch jemals wirklich verstehen wird, was es wirklich tut.

Es loswerden. Und ich weiß nicht * immer * diese Scheiße wieder sehen wollen.

Linus

Lektion gelernt: Leg dich nicht mit Linus Code.

Verwandte Artikel

Die Woche am besten Podcasts: Sie müssen sich erinnern diese, Embedded, Radiolab

Es gibt eine Fülle von Hörgenuss in dieser Woche unter anderem einen Blick auf die McCarthy-Ära Hollywood, heben den Deckel und eine gute Nachricht auf eine weitere Runde Nickleodeon Sie müssen sich erinnern diese blickt zurück auf eine der faszinier...

Sie müssen nicht sein Scrooge zu Weihnachten klaustrophobisch finden

Wir sind für den schönsten Tag des Jahres mit Bildern und Anweisungen auf den Kopf geschlagen. Erzwungene Häuslichkeit ist deutlich angenehmer für einige, aber Sie können nicht Glück herstellen Es gab eine Zeit, wenn einige Leute (Kinder) mochte Weihnacht...

Sie wusste wohl nicht, dass diese 10 nationalen Stereotypen nicht erfüllt sind

Stereotypen können spielerisch sein, aber sie sind meist schädlich. Mehr als oft nicht, sind sie aus den Annahmen einer veralteten Ära basiert. Für viele Klischees wir haben gelernt, ihre falschen Herkunft und wissen, dass sie keine Grundlage in der Tat....

Sie müssen nicht zu gewinnen, eine 50 Jahre alte Sub auf Street View zu bereisen

Google Street View wird allmählich das Fenster in eine Welt, die meisten von uns nie zu sehen im realen Leben bekommen können. Und wenn Sie bereits kleinste Ecken und Enden des Large Hadron Collider des CERN über Street View erkundet haben, können Sie jet...

Rufen Sie die Nummer nicht in diese Instagram-Anzeige

Gestern auf meinem Instagram-feed war eingebettet zwischen einem alten College-Freund belgische Waffel-Frühstück und einen Beitrag von einem japanischen Experimentalkünstler eine gesponserte post behauptet, "Millionen von Amerikanern für Obamas neue...

Sie müssen nicht zu selbstlos, eine gute Mutter zu sein

"Betreuer" und "Hausmeister" sind Worte, die oft synonym verwendet werden, weil sie im Grunde die gleiche Definition haben. Betreuer und Betreuerinnen betreuen und unterstützen andere Leute (wie, sagen wir, Kinder). Sie unterscheiden s...

Alek Wek: "Sie müssen nicht mit der Masse gehen"

Als Teenager Alek Wek rüttelte auf der Mode-Welt – und inspiriert, unter anderem eine junge Lupita Nyong'o. Das sudanesische Supermodel Sali Hughes erzählt, warum schrulligen ist gut Alek Wek war 19, als sie von einem Top-Agentur in London auf einer...

Sie müssen nicht Trans Verbündeter gegen Transphobie zu sein

Will Young Video über Trans leiden hat seine Schwächen, sondern sozialer Wandel bringt immer Gebäude Allianzen Schreiben über die Unterdrückung anderer ist grundsätzlich problematisch. Sie sollten ihre Stimmen, die am lautesten zu hören sind; andere, die...

Sie müssen nicht im Internet Cool zu sein

Jeder will cool sein, aber niemand will es zugeben. Dennoch haben seit Beginn des Internets, Menschen eine ständig weiterentwickelnden Skript zur Erreichung kühle formuliert. Es ist verwirrend und oft widersprüchlich. Wir haben sicher was zu tun ist und w...

Wir können nicht unsere Kinder von allem zu schützen – aber diese TV-Plakat ist nicht zu helfen

In den sechs Jahren da gebar meine ältere Tochter, habe ich fast die Kunst von Mama Pokerface perfektioniert. Fast. Ich bin sehr gut bei meiner Wut verstecken, wenn sie zum Beispiel ihre Vitamine in einer Gewebe-Box versteckt, zumal konstruktivere Ansatz...

Wie Sie Ihren Kindern zu erleichtern, in der Kunst zu schätzen

Bevor Sie hier durchblättern, klicken Sie auf zurück und lesen Sie die Diskussion auf, ob es angebracht, ein Kind zu einem Konzert zu bringen ist. Ich glaube nicht, dass es wirklich ist. Das heißt, ich glaube, es gibt live-Auftritte, die ideal für Ki...

Fordern Sie neue Kompetenzen zur betrieblichen Altersversorgung nach Übernahmen zu schützen

BHS Zusammenbruch Shows müssen Regler, stärken, sagt ehemaliger Leiter der Renten Rettungsboot Richterin Die Pension Regler sollten gegeben werden neue Kompetenzen zur Firma Angebote zu blockieren, so dass Arbeitnehmer und Rentner im Zuge von Veranst...

Wie Grippe Preise schnell steigen, ist es nicht zu spät, sich zu schützen

Das Influenza-Virus in 41 Staaten weit verbreitet ist, sagt der US Centers for Disease Control und weiter zu verbreiten, aber es ist nicht zu spät, eine Grippe-Impfstoff erhalten. Die Stadt Boston hat einen gesundheitlichen Notfall, mit über 700 Fälle bes...

Begleiten Sie Jessica Alba in ihrem Versuch, unsere Kinder zu schützen!

Promi-Mama Jessica Alba will unsere Kinder zu schützen. Sie schloss die sicherere Chemikalien, gesunde Familien Koalition. Diese Gruppe unterstützt sichere ChemG 2011, die Erhöhung der Sicherheit von Chemikalien verwendet in Verbraucher Produkte und...