Frage

Meine Absicht in dieser Frage ist nicht pedantisch zu sein, sondern um eine Achse eines wichtigen Thema zu erforschen übersehen ( die Verwendung von Leerzeichen ). Viel Debatte und Sorgfalt in die Verwendung von horizontalen Leerzeichen gesetzt worden, nach einer bedingten Einrücken, ein Raum zwischen einer if und Klammer usw. In der Tat ist das Problem als so wichtig und umstritten sein, dass nicht nur tun, einige Unternehmen haben Regeln und Normen für sie, aber einige Unternehmen sogar Regeln haben es die Diskussion verbieten.

Warum ist es, unter Berücksichtigung der Zustand horizontaler Leerzeichen, dass die Diskussion über vertikale Leerzeichen, ist eine solche tote Problem? Warum ist das x wichtiger als die y ? Vor ein paar Tagen bemerkte ich, dass, wenn ich Code lesen, ich, ohne zu denken, oft vertikale Gruppierungen von Aussagen anzupassen. lesen Sie andere Völker Code jetzt, mit einem Auge in Richtung vertikale Leerzeichen hat, bemerkte ich mehrere Muster, so frage ich Stackoverflow:

  • Was harte und weiche Regeln tun Sie vertikale Leerzeichen bewerben?
  • Gibt es vertikale Leerzeichen Verwendungen, die allgemein als sehr schlecht oder sehr gute Praxis?
  • Haben Sie mit „richtigen“ vertikalen Leerzeichen Lesen Code gefunden half es beim Verständnis?
  • Hat jemand anderes als Typografen und mich kümmern?
War es hilfreich?

Lösung

Ich sehe vertikalen Raum in Code, wie ich in den Nummern suchen schriftlich Prosa. So wie ein Absatz Gruppe Sätze gemeint zusammen, die einen gemeinsamen Punkt oder eine Idee haben, Linien, die zusammen gruppieren sollen, werden in Beziehung gesetzt werden.

Das übergeordnete Ziel ist es, die Lesbarkeit des Codes zu verbessern. Genau wie ein Artikel ohne Absätze zu lesen wäre schwierig, so zu Code ohne vertikalen Raum ist. Und ebenso wie mit Prosa, gibt es ein Gleichgewicht zwischen den Absätzen zu komponieren, die zu kurz oder zu lang sind. Aber am Ende, es kommt vor allem auf persönlichen Stil nach unten und Vorlieben.

Andere Tipps

Ich glaube, eines der wichtigsten Dinge, die Gruppe zusammen ein logischer Schritt, wie zum Beispiel:

foo.setBar(1);
foo.setBar2(2);
foo.writeToDatabase();

bar.setBar(1)
bar.setBaz(2);
bar.writeToDatabase();

Auf diese Weise wird der Code leichter zu lesen, und ist mehr beschreibend, für mich jedenfalls.

Wenn eine Gruppe von Aussagen logisch verknüpft ist, gebe ich ihm eine Leerzeile vor und nach. Diese Trennung hilft, wenn ich es Refactoring müssen aus in eine Funktion später.

Wie für Doppelleerzeilen. Wenn etwas, das unterschiedlich ist, sollten Sie wirklich halten es für eine Funktion zu machen

Wenn ein Kommentar auf mehrere Zeilen Code gilt, dann habe ich Leerzeichen nach dem letzten dieser Zeilen, es sei denn, gibt es andere Syntax Dinge zu brechen (wie das Ende eines Blocks).

Überall dort, wo ich „etwas“ mache, die mehrere Zeilen Code nimmt, unmittelbar gefolgt von „etwas anderes“ gefolgt, dann werde ich entweder abstrakt in separate Funktionen oder auch Ort Kommentare [*]. So Codezeilen im Allgemeinen zusammen gruppiert in kurzen Sätzen enden, es sei denn, die Flow-Control macht es (meiner Meinung nach) selbsterklärend.

Ich interessiere mich ein wenig über Leerzeichen, aber eigentlich ist es die Kommentare, die ich über mehr kümmern. Wenn ein paar Zeilen Code zusammen eine bestimmte Sache zu tun, und es ist nicht als Funktion herausgenommen worden ist, dann würde Ich mag eine englische Beschreibung, um zu sehen, was das für ein Ding ist. Auf diese Weise kann ich sehen, dass die „Stufen“ der Funktion wirklich zum richtigen Ergebnis addieren, dann schauen, um zu sehen, dass jeder Schritt tut, was es verspricht.

In den Klassen, habe ich Leerzeichen manchmal zwischen Methoden / Member-Funktionen, und manchmal nicht. In C ++ setzen I Leerzeichen vor Zugriffsbezeichner.

Ich hatte Leerzeichen zwischen den Klassen, (manchmal nicht für anonyme innere Klassen in Java) und zwischen Funktionen außerhalb Klassen.

Other than that, ist mein Code ziemlich vertikal dicht. Ich fast nie mehrere Leerzeilen verwenden, selbst wenn Abschnitte einer Header-Datei und dergleichen zu trennen. Ich würde es vorziehen blankline-Kommentarzeile-blankline statt blankline-blankline, auch wenn die Kommentarzeile endet etwas ganz banal wie „Hilfsfunktionen“ zu sein. Ich Arten nicht mögen, die zwischen Funktionen enorme vertikale Leerzeichen haben - wenn sie so getrennt sind, dass Sie nicht möchten, dass sie beide auf dem Bildschirm zur gleichen Zeit, um zu sehen, würde ich entweder sagen sie in verschiedenen Dateien setzen oder die Lücke mit Doxygen füllen / Javadoc Kommentare.

[*] In der Version, die ich einchecken. Ich in der Regel Code schreiben mehr oder weniger ohne Kommentare, kompilieren dann laufen Schnelltests, kommentieren es, laufen richtigen Tests, begehen sie. Das ändert sich oft ein wenig, und manchmal viel. Zum Beispiel, wenn ich bin Codierung zu einem Algorithmus, der im Voraus genau festgelegt ist, oder an eine spec, wo die Umsetzung „offensichtlich“ ist, könnte ich die Kommentare zuerst schreiben und dann den Code.

Es ist seit Jahrzehnten bekannt, dass die Fähigkeit des Programmierers Code zu verstehen, im Allgemeinen durch begrenzt ist, wie viel davon er auf einmal sehen kann. (Siehe zum Beispiel Weinberg, „Psychology of Computer Programming“, eine Oldie-but-Goodie.) In den alten Tagen von Papierlisten, würden Programmierer große Tabellen packen und Verbreitung mehr Seiten auflistet. Heute Immobilien, Bildschirm ist etwas besser als die Tage von 24x80, aber ich neige immer noch die Verwendung von vertikalen Leerzeichen zu minimieren, da viele Leerzeilen Platz auf dem Bildschirm einnehmen, die mir eigentlichen Code zeigen, könnte.

Ich kümmere sicher und neigen dazu, Gruppencode richtig (zumindest für meine Augen) mit Leerzeilen, wo angemessen. Ofttimes das bedeutet viele Leerzeilen, aber im Allgemeinen halte ich den Code besser lesbar als mit allem, was zusammengepfercht. Genau wie Räume um Betreibern eine sehr schöne Sache sind, sind so Leerzeilen um logisch gruppiert Aussagen.

Mehr als eine einzelne leere Zeile auf einmal sieht ein wenig fehl am Platz, aber.

Ich finde es schwer zu lesen, wenn Code unregelmäßig vertikal angeordnet ist. Ich gehe sogar so weit zu entfernen Klammern nicht erforderlich ist, oder wenn es sich um kurze Blöcke, wie ifs oder fors, legen Sie es auf der gleichen Linie.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top