Kommentare im Code als Ausdrucksform

Als ich kürzlich ein nicht sehr beliebtes Framework auswählte, stieß ich auf den folgenden Code.


Weil Killerroboter Einhörner lieben!

Ich weiß nicht, welchen Gedanken und in welcher Stimmung der Autor vermitteln wollte, aber dies ließ mich denken: Wie oft verwenden wir Kommentare nicht ganz für den beabsichtigten Zweck? Ein paar Funde unter dem Schnitt.

  // Es wird nicht empfohlen zu lesen, wenn Sie Freitag Beiträge am Dienstag nicht mögen. 

Es gibt unterschiedliche Meinungen zum Thema Codekommentar. Es gibt Anhänger des selbsterklärenden Codes. Nach diesem Konzept werden Variablen und Funktionen so vollständig wie möglich benannt, wodurch in vielen Fällen keine zusätzlichen Kommentare mehr erforderlich sind. Andere bevorzugen es, jeden Schritt in den Kommentaren zu beschreiben, um sich selbst und denjenigen zu helfen, die später mit dem Code arbeiten müssen. Einige schreiben dreistöckige Konstruktionen in einer Zeile und kommentieren sie in keiner Weise (er selbst hat gesündigt, gebe ich zu). Es gibt aber auch andere Fälle.

Trauriges Geständnis


Haben Sie jemals etwas geschrieben, für das Sie selbst gehasst haben? Haben Sie verstanden, dass dies schlecht und hässlich ist, aber die Umstände (z. B. Kundenanforderungen) waren stärker als Sie? Einiges davon ist passiert.

  // Dieser Code ist scheiße, du weißt es und ich weiß es.
 // Mach weiter und nenn mich später einen Idioten. 

Dieser Code ist widerlich, du weißt es und ich weiß es. Mach weiter und nenn mich einen Idioten.

  // Ich bin nicht verantwortlich für diesen Code.
 // Sie haben mich dazu gebracht, es gegen meinen Willen zu schreiben. 

Ich bin nicht verantwortlich für diesen Code. Ich war gezwungen, dies gegen meinen Willen zu schreiben.

  // Ich muss einen besseren Job finden 

Es ist Zeit, einen besseren Job zu finden

  // Ich widme all diesen Code, meine ganze Arbeit meiner Frau Darlene, die es tun wird 
 // muss mich und unsere drei Kinder und den Hund unterstützen, sobald er kommt 
 // in die Öffentlichkeit entlassen. 

Ich widme diesen ganzen Code, meine ganze Arbeit meiner Frau Darlene, die sich um mich, unsere drei Kinder und den Hund kümmern muss, sobald er das Licht der Welt erblickt.

Und manchmal zwingen Unternehmensstandards zum Schreiben von Code Sie dazu, etwas zu tun, das sich nicht für die interne Logik des Entwicklers eignet.

  const int TEN = 10;  // Als ob der Wert von 10 schwanken würde ... 

Als ob der Wert 10 variieren kann ...

Ich erinnerte mich an den Fall, als ich freiberuflich ein kleines Stück Arbeit in einem Verzeichnis bekam. Das Interaktionssystem wurde auf komplexe Weise aufgebaut, wodurch es keine direkten Rückmeldungen des Kunden gab. Und es war notwendig, "wie auf dem Bild, weil der Kunde dies genehmigte" zu tun, obwohl dies aus Sicht des Codes hässlich war. Bist du auch auf diese gestoßen?

Warnungen und verlorenes Wissen


Es kommt vor, dass es besser ist, keinen Code zu stören. Versuchen Sie nicht, es umzugestalten, zu optimieren oder auf andere Weise zu verbessern.

 / * * Sie denken vielleicht, Sie wissen, was der folgende Code tut.  * Aber du nicht.  Vertrau mir.  * Fummeln Sie daran herum, und Sie werden so manche schlaflose * Nacht damit verbringen, den Moment zu verfluchen, in dem Sie dachten, Sie wären schlau * genug, um den folgenden Code zu "optimieren".  * Schließen Sie nun diese Datei und spielen Sie mit etwas anderem.  * / 

Es scheint Ihnen, dass Sie wissen, was der nachfolgende Code tut. Es ist nicht so. Glauben sie mir. Wenn Sie sich darauf einlassen, werden Sie viele schlaflose Nächte damit verbringen, den Moment zu verfluchen, in dem Sie dachten, Sie wären klug genug, um es zu „optimieren“. Schließen Sie nun diese Datei und spielen Sie mit etwas anderem.

  / *
  * Lieber Betreuer
  * *
  * Wenn Sie mit dem Versuch fertig sind, diese Routine zu optimieren,
  * und du hast erkannt, was für ein schrecklicher Fehler das war,
  * Bitte erhöhen Sie den folgenden Zähler als Warnung
  * zum nächsten Mann.
  * *
  * total_hours_wasted_here = 73
  * / 

Sehr geehrte Begleitperson! Wenn Sie Ihren Versuch, diesen Prozess zu „optimieren“, beendet haben und festgestellt haben, wie ungeheuerlich dieser Fehler war, erhöhen Sie den nachfolgenden Zähler als Warnung für diejenigen, die für Sie kommen.

  // Magie.  Nicht berühren. 

Die Magie. Nicht anfassen.

  / *
 Nach stundenlanger Beratung das Buch von Google
 Ich habe das durch den Willen unbekannter Kräfte entdeckt
 Ohne die folgende Zeile glaubt IE7, dass 6px = 12px ist
 * /
 Schriftgröße: 0px; 

Nach stundenlanger Beratung und Googeln stellte ich fest, dass IE7 durch den Willen unbekannter Kräfte ohne nachfolgende Zeile 6px = 12px glaubt

  // Automatisch generiert, NICHT bearbeiten.  Alle Änderungen werden rückgängig gemacht. 

Automatisch generiert, NICHT bearbeiten. Alle Änderungen werden verworfen.

Letzteres ist übrigens ein interessantes Beispiel für Schlauheit im Kampf gegen Versuche, in Ihren Code zu gelangen. Sie sagen, es funktioniert.

Schmerz und Verzweiflung


Mussten Sie mit etwas arbeiten, das Sie in völlige Verzweiflung führte? Der Entwickler des Xee-Bildbetrachters hat festgestellt, dass das PSD-Format analysiert wurde. Aber mit wem kann ein Programmierer seine Leiden teilen, wenn nicht mit einem Kommentar? Unten ist eine Übersetzung, das Original befindet sich derzeit auf dem Github .

Hier möchte ich einen Moment innehalten und über das Adobe PSD-Format sprechen. PSD ist kein gutes Format. PSD ist nicht einmal ein schlechtes Format. Das zu nennen wäre eine Beleidigung für andere schlechte Formate wie PCX oder JPEG. Nein, PSD ist ein monströses Format. Mehrere Wochen der Arbeit an diesem Code haben meinen Hass auf PSD auf das Niveau eines heftigen Feuers erhöht, das mit der heftigen Leidenschaft von einer Million Sonnen brennt.

Wenn es zwei Möglichkeiten gibt, etwas zu tun, verwendet die PSD beide an verschiedenen Orten. Darüber hinaus wird er drei weitere Wege schaffen, die keinem vernünftigen Menschen in den Sinn gekommen wären, und sie gleichzeitig nutzen. PSD bringt Inkonsistenz auf das Niveau der Kunst. Warum entschied er zum Beispiel, dass diese Blöcke um vier Bytes ausgerichtet werden sollten und diese Ausrichtung nicht in der Größe enthalten sein sollte? Andere Blöcke an anderen Stellen werden entweder nicht ausgerichtet oder enthalten eine Ausrichtung in der Größe. Hier ist es jedoch nicht enthalten. Jede dieser drei Möglichkeiten würde ausreichen. Ein vernünftiges Format würde sich auf eines konzentrieren. PSD verwendet natürlich alle drei und andere.

Der Versuch, Daten aus einer PSD-Datei zu extrahieren, ist wie die Suche nach etwas auf dem Dachboden Ihres exzentrischen alten Onkels, der an seinem 58. Geburtstag an den Folgen eines rasenden Süßwasserhais gestorben ist. Das letzte Detail ist für die Erzählung nicht besonders wichtig, aber im Moment verbringe ich viel Zeit damit, den Verantwortlichen für diesen Rub Goldberg interessante Schicksale unter den Dateiformaten vorzustellen.

Zuvor habe ich versucht, die neuesten PSD-Formatspezifikationen zu erhalten. Um dies zu tun, musste ich mich an sie wenden, um die Erlaubnis zu erhalten, mich an sie zu wenden, um die Möglichkeit zu prüfen, mir diesen heiligen Band zu schicken. Der Prozess beinhaltete das Faxen von Kopien bestimmter Dokumente, die möglicherweise mit Blut signiert waren. Die einzige Erklärung, die mir in den Sinn kommt, ist die Komplexität des Prozesses - sie schämen sich sehr für die Entstehung dieses Greuels. Natürlich konnte ich dieses Verfahren nicht durchführen, aber wenn ich könnte, würde ich alles auf eine einzelne Seite dieser Spezifikation drucken und sie brennen. Wenn es in meiner Macht stünde, würde ich alle Kopien der Spezifikation in der Welt sammeln und ihnen eine Rakete direkt zur Sonne schicken.

PSD ist nicht mein Lieblingsformat.

Ich habe nicht so viel Hass erreicht, aber ich erinnerte mich, wie meine Augen bluteten, als ich eine Dokumentation für die API einiger inländischer Entwickler las.

Weg, sich zu unterhalten


Wir wissen, wie langweilig und einsam die Arbeit eines Programmierers ist. Weil wir alle manchmal dieselbe Person in KVN spielen. Der sicherste Weg, dies zu tun, ist natürlich in den Kommentaren, aber es gibt Optionen.

  # Weihnachtsbauminitialisierer  
     toConnect = []  
     toRead = []  
     toWrite = []   
     Primzahlen = []  
     Antworten = {}  
     verbleibend = {} 

Weihnachtsbauminitialisierer

  ////////////////////////////////////////// Dies ist eine gut kommentierte Zeile 

Gut auskommentierte Zeile

  Wiederholen
     ...
 Bis (JesusChristsReturn) 'Nicht sicher 

Religiöses Dogma im Zweifel ...

  // Wenn ich das jemals wieder sehe, werde ich anfangen, Waffen zur Arbeit zu bringen 

Ich werde das noch einmal sehen - ich werde anfangen, Waffen zur Arbeit zu tragen

  // Gib alle Hoffnung auf, die über diesen Punkt hinaus eintritt 

Gib die Hoffnung auf, dass alle hier reinkommen

  // betrunken, später reparieren 

Betrunkener Fix später

Scherz als Scherz, und als ich mir eine ähnliche Notiz auf einem Aufkleber auf dem Monitor hinterließ: "Nüchtern - überprüfe XXX, JJJ Klassen" ...

  catch (Ausnahme e) {
  // wen interessiert das
 }} 

Wen interessiert das?

  // Ich verstehe nicht, wie das folgende Bit funktioniert, aber es hat in dem Programm funktioniert, aus dem ich es gestohlen habe. 

Ich weiß nicht, wie dieses Stück funktioniert, aber es hat im Programm funktioniert, von wo ich es gestohlen habe.

  // Dieser Code wurde von einem Genie geschrieben, also versuche nicht, ihn damit zu verstehen
 // dein kleines Gehirn. 

Dieser Code wurde von einem Genie geschrieben. Versuchen Sie nicht, es mit Ihrem Miniaturgehirn zu verstehen.

  Doppelpenetration;  // autsch 

Und wirklich, oh ...

  // Hinzugefügt, weil der Chef seine Meinung geändert hat: 20020111,20020501,20020820, ...
 // Auskommentiert, weil der Chef seine Meinung geändert hat: 20020201,20020614,20020908, ... 

Hinzugefügt seit Der Chef hat seine Meinung geändert ... Auskommentiert, weil Der Chef hat seine Meinung geändert ...

  // Haleluya ich kann nach Hause gehen! 

Aleluia, ich kann nach Hause gehen

Ich ging nach hause Und Sie sagen uns, was Ihr denkwürdigster oder lustigster Kommentar war.

Vielen Dank für Ihren Aufenthalt bei uns. Gefällt dir unser Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung aufgeben oder Ihren Freunden empfehlen, einen Rabatt von 30% für Habr-Benutzer auf ein einzigartiges Analogon von Einstiegsservern, das wir für Sie erfunden haben: Die ganze Wahrheit über VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s von $ 20 oder wie teilt man den Server? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).

Dell R730xd 2 mal günstiger? Nur wir haben 2 x Intel Dodeca-Core Xeon E5-2650v4 128 GB DDR4 6 x 480 GB SSD 1 Gbit / s 100 TV von 249 US-Dollar in den Niederlanden und den USA! Lesen Sie mehr über den Aufbau eines Infrastrukturgebäudes. Klasse mit Dell R730xd E5-2650 v4 Servern für 9.000 Euro für einen Cent?

Source: https://habr.com/ru/post/de420091/


All Articles