In der Diskussion über die Platzierung von geschweiften Klammern wurden bereits einige Anmerkungen zum Leerraum gemacht.
Ich selbst neige dazu, meinen Code mit Leerzeilen zu bestreuen, um Dinge, die in "logischen" Gruppen zusammengefasst sind, voneinander zu trennen und hoffentlich der nächsten Person das Lesen des gerade erstellten Codes zu erleichtern.
In der Tat würde ich sagen, dass ich meinen Code so strukturiere, wie ich ihn schreibe: Ich mache Absätze, die nicht länger als ein paar Zeilen sind (definitiv kürzer als 10), und versuche, jeden Absatz in sich geschlossen zu machen.
Beispielsweise:
- In einer Klasse werde ich Methoden gruppieren, die zusammengehören, während ich sie durch eine Leerzeile von der nächsten Gruppe trenne.
- Wenn ich einen Kommentar schreiben muss, setze ich normalerweise eine Leerzeile vor den Kommentar
- In einer Methode mache ich einen Absatz pro Schritt des Prozesses
Alles in allem habe ich selten mehr als 4/5 Zeilen zusammengefasst, was einen sehr spärlichen Code bedeutet.
Ich betrachte all diesen Leerraum nicht als Verschwendung, da ich ihn tatsächlich zum Strukturieren des Codes verwende (da ich den Einzug tatsächlich verwende), und daher denke ich, dass er den erforderlichen Bildschirmplatz wert ist.
Beispielsweise:
for (int i = 0; i < 10; ++i)
{
if (i % 3 == 0) continue;
array[i] += 2;
}
Ich bin der Meinung, dass die beiden Aussagen eindeutige unterschiedliche Zwecke haben und daher eine Trennung verdienen, um dies deutlich zu machen.
Also, wie benutzt man eigentlich (oder nicht) Leerzeilen im Code?
quelle
if (i % 3 != 0) { <newline here> array[i] += 2; <newline here> }
, aber ich verstehe Ihren Standpunkt :)for (int i = 0; i < 10; i += 3) { <newline here> array[i] += 2; <newline here> }
aber ichAntworten:
Immer
Leerzeichen sind für die Bereinigung von lesbarem Code von entscheidender Bedeutung. Durch eine leere Zeile (oder zwei) können logische Codeblöcke visuell voneinander getrennt werden.
Zum Beispiel aus Steve McConnells Kapitel Code Complete, Second Edition, über Layout und Stil:
quelle
Ja zur Klarheit.
Genau wie ich es in dieser Antwort getan habe.
quelle
Ich mache es, aber ich stelle sicher, dass ich es dokumentiere, indem ich es setze
(This line intentionally left blank.)
an der Leitung
quelle
Ja, aber ich missbrauche es nicht.
Ich habe Code gesehen, bei dem jede Codezeile in einer Methode durch eine Leerzeile getrennt ist und zwei Leerzeilen verwendet werden, wenn eine logische Trennung auftritt. Das macht es meiner Meinung nach nur noch weniger lesbar. Ich habe auch Leerzeichen gesehen, mit denen verrückte Ausrichtungen vorgenommen wurden, wie zum Beispiel:
Der gleiche Missbrauch von horizontalen Leerzeichen kann auf vertikale Leerzeichen angewendet werden. Verwenden Sie es wie jedes Werkzeug mit Bedacht.
quelle
Ich werde oft dafür kritisiert, dass ich meinen Code auf diese Weise schreibe. Ich verstehe nicht, warum jemand es nicht so machen würde.
Lesbarkeit ist so wichtig, wenn Sie nach einer längeren Zeit zu einem Projekt zurückkehren und ich den Spruch "Schreiben Sie immer Code, wenn der nächste Typ, der es liest, ein Psychopath ist, der Ihren Standort kennt" gehört habe.
quelle
undo
ein paar Mal, um die Arbeit zu erledigen (Formatierungskriege werden nicht durchgeführt) Das führt nicht zur Produktivität, daher würde ich Kommentare und Leerzeichen nicht sofort löschen, aber ich bevorzuge sie größtenteils.Ich schreibe nicht immer Software, aber wenn ich das tue, verwende ich aus Gründen der Klarheit leere Zeilen.
quelle
Ich bin alles dafür, Code so klar wie möglich zu gestalten, und Leerzeichen sind oft ein nützliches Werkzeug für diese Bemühungen. Vergessen wir aber nicht das Refactoring:
Da Sie mehrere verwandte Mitglieder haben, sind diese Kandidaten für eine neue Klasse.
Wenn der Code unklar genug ist, um einen Kommentar zu wünschen, frage ich, ob ich den Code so umgestalten kann, dass er klar genug ist, um den Kommentar nicht zu benötigen.
Warum nicht eine Methode für jeden "Absatz" erstellen?
Wenn Sie am Ende eine Reihe von Methoden in Ihrer Klasse haben, lesen Sie den obigen Hinweis zum Extrahieren einer neuen Klasse.
quelle
Ja. Dies erleichtert das visuelle Scannen einer Datei. Unter anderem wird dadurch klarer, zu welcher Zeile ein Kommentar gehört.
quelle
Ich benutze leere Zeilen sparsam und konsequent und ist konsequent wichtiger als sparsam. Jedoch:
Das meiste davon ist nicht schrecklich umstritten; was folgt könnte sein. Ich stelle fest, dass nach der K & R-Notation mit den offenen Klammern am Zeilenende oft eine Leerzeile folgt. Ich persönlich mag die geschweiften Klammern am Ende der Zeile nicht und das Mischen mit einer Leerzeile nach der geschweiften Klammer macht einen Unsinn in der Notation (IMNSHO). Setzen Sie die offene Klammer in die nächste Zeile, und Sie haben eine meist leere Zeile (und, IMNSHO, besser lesbaren Code). Wenn Sie am Ende der Linie eine K & R-Klammer verwenden müssen, verschwenden Sie nicht den vertikalen Platz, der durch überflüssige Leerzeilen gespart wird.
quelle
Schreiben Sie das, was am besten lesbar und am wenigsten überraschend ist.
Diese Funktion benötigt keine 12 Zeilen Dokumentkommentare.
Tatsächlich braucht es keine Kommentare.
Oder leere Zeilen.
Sie würden von seinem Wesen ablenken.
quelle
Innerhalb der Funktion? Selten
Wenn ich einen anderen Block habe, wird auf eine neue Funktion umgestaltet. Wenn sich wenige Fälle nicht lohnen.
Für mich sind Leerzeilen innerhalb der Funktion eine der falschesten "Best Practices".
quelle
Häufig
Verwenden Sie es für logische Codeblöcke, die auf ähnliche Weise verarbeitet werden. Sobald Sie einen Kommentar hinzugefügt haben, um zu zeigen, dass Sie einen anderen Schritt ausführen, ist es Zeit, die Methode zu extrahieren.
Gutes Leerzeichen
Schlechtes Leerzeichen
vs
vs
quelle
connection.close()
zucloseConnection(connection)
item1
unditem2
globale Variablen, über die die Methoden kommunizieren? Ick!Ich benutze nicht nur Leerzeichen, sondern auch geschweifte Klammern.
Klammern, die ich benutze, um zu sagen, dass dies möglicherweise Funktionen sein können.
quelle
Zu einer Zeit würde ich in meinem Code großzügig Leerzeilen streuen. Heutzutage bin ich eher sparsam. Ich glaube, das ist ein Teil dessen , was Steve Yegge wurde reden hier :
Ich stimme ihm grundsätzlich zu. Es ist viel besser, den Code zu komprimieren, damit Sie so viel wie möglich auf einem Bildschirm anzeigen können, als ihn zu sehr auszulagern. Das heißt nicht, dass Sie niemals Leerzeilen verwenden sollten. Es ist nur so, dass ich denke, wenn die Gruppierung, die Sie erstellen möchten, die Lesbarkeit nicht immens steigert, schadet sie mehr als sie nützt.
quelle
Ein emeritierter Professor gab zwei großartige Ratschläge
quelle
Meine Faustregeln sind diese:
Wenn ich Probleme habe, den Code zu lesen, den ich gestern geschrieben habe, muss ich wahrscheinlich eine oder drei Methoden extrahieren.
Wenn meine Klassendefinition zu lang ist, um leicht gelesen zu werden, muss ich wahrscheinlich ein Modul / eine Schnittstelle / ein Objekt extrahieren.
Methodendefinitionen: Fügen Sie eine Zeile hinzu
Modul- / Klassendefinitionen: Fügen Sie zwei Zeilen hinzu
quelle
Ich stelle mir Leerzeichen gerne genauso vor wie Absätze. Sie gruppieren Linien, die zu einer Idee beitragen.
Wenn Sie eine neue Idee oder eine neue Facette derselben Idee beginnen, beginnen Sie einen neuen Absatz - so.
Im imperativen Code fasse ich Aufgaben zusammen, die eine zusammenhängende Aufgabe ausführen. Im deklarativen Code fasse ich Code zusammen, der eine zusammenhängende Aussage einer Idee beschreibt.
Sie haben eindeutig keine Probleme damit, dies auf Englisch zu tun (einige Leute haben schreckliche Probleme mit dem Paragraphen). Mit ein wenig Übung sollte es also kein Problem sein, dieselbe Fähigkeit auf Code anzuwenden.
quelle
Leerzeilen sind meiner Meinung nach ein Muss. Ich benutze sie, um verschiedene logische Codeblöcke zu trennen. Macht den Code lesbar. Lesbarer Code ist guter Code;)
Mein ideales Codestück wäre, dass jeder logische Block durch eine Leerzeile und einen Kommentar über jedem Block mit einer Hauptlogik getrennt wird.
Natürlich finde ich es sehr ärgerlich, wenn Leute es tun, indem sie überall mehrere Leerzeilen einfügen :(
quelle
Ich benutze nur Leerzeichen innerhalb einer Funktion / Methode, um Deklarationen und Code zu trennen.
Wenn Sie das Bedürfnis haben, einige Zeilen zum Trennen von Teilblöcken des Codes zu haben, die eine Logik implementieren, sollten sie sich nur in einer anderen Funktion / privaten Methode befinden. Es liegt an Ihrem Compiler, den Aufwand nicht zu groß zu machen.
In der Regel im Peusdo-Code:
Wenn ich unnütze Leerzeichen sehe, erschaudere ich normalerweise.
quelle
Leerraum ist extrem wertvoll.
Hier ist der Deal ... Nerds, die komplizierten Code wie E = MC 2 schreiben, können ihre Programmierfähigkeiten hervorragend unter Beweis stellen.
Lassen Sie uns nun ein halbes Jahr weiterspringen, und es ist 2:00 Uhr morgens, und das System, das seit sechs Monaten nicht mehr untersucht wurde, ist genau in der Zeile E = MC 2 defekt . Das ist fast unmöglich zu debuggen ... alle flippen aus.
Angenommen, der Code sieht ungefähr so aus ...
Wenn es 2:00 Uhr morgens ist und der Code fehlerhaft ist. Ein kurzer Blick zeigt Ihnen, dass Zeile drei hätte sein sollen
Problem gelöst.
Fazit ... Leerzeichen verwenden.
quelle
Wie viele andere angegeben haben, erleichtern leere Zeilen das Lesen von Code. Es gibt jedoch einige Sprachen, die diesen Standard durchsetzen. Eines, an das ich auf Anhieb denken kann (nicht so sehr über Leerzeilen, sondern über die richtige Einrückung), ist Python.
quelle
Ich stimme zu, ich benutze Whitespace genauso. Wenn ich jedoch eine Methode mit Leerzeichen in zu viele Teile zerlege, muss ich den Code möglicherweise in mehrere Methoden umgestalten. Zu viele logische Abschnitte in einer Methode können darauf hinweisen, dass die Methode schwieriger zu testen ist.
quelle
Ich benutze sie, um Code in logische Einheiten zu trennen. Ich habe nur sehr wenige Codebeispiele gesehen, in denen keine Leerzeilen verwendet wurden. Eine Verschleierung ist natürlich ausgeschlossen.
quelle
Die Antwort des Psychopathen ist die beste, aber ich würde sie durch die Annahme ersetzen, dass die nächste Person ein Idiot ist und dass sie annehmen wird, dass Sie es sind, und dass Sie ihnen das Gegenteil beweisen wollen.
Ebenso wichtig für die Lesbarkeit ist die Verwendung von Kommentaren. Ich öffne jede Funktion oder Subroutine mit einem Kommentarblock und erkläre im Klartext, was es ist, was es tut, was die Argumente sind und was die erwarteten Ergebnisse sind (einschließlich einer Liste von Fehlerzuständen). Dann steht außer Frage, was beabsichtigt und / oder beabsichtigt ist. Was es erreicht, kann variieren, aber das ist weiter unten in der Spur.
Ich denke, viel zu viele Programmierer gehen entweder davon aus, dass sie selbst "Reparaturen" am Code vornehmen werden, oder es ist ihnen einfach egal.
quelle
Leerzeilen sind wichtig. Durch das Verschwenden einer ganzen Leerzeile in der öffnenden Klammer wird jedoch die Codemenge verringert, die auf einem Bildschirm angezeigt wird. Sollte sein:
(Bring mich nicht dazu, die Klammer '{' in dieselbe Zeile wie das 'for' zu setzen ... das ist meshuggah).
quelle
Ja. Zur besseren Lesbarkeit. Manchmal füge ich sogar leere Zeilen in Code ein, die ich nicht geschrieben habe. Ich finde es einfacher, Code zu verstehen, wenn er über Leerzeilen logisch gruppiert ist - so wie man ihn "schnell lesen" kann.
quelle
Wir sollten Leerzeilen zwischen Codeblöcken verwenden, wie wir es tun, wenn wir einen Brief schreiben.
Zum Beispiel zwischen Funktionen oder innerhalb einer Funktion, wenn wir eine Schleife beenden ...
Die Leute werden sich bei Ihnen für einen sauberen Code bedanken, wenn sie ihn warten müssen;)
quelle
Wir verwenden die von Microsoft StyleCop empfohlenen Leerzeichen. Abgesehen von der Lesbarkeit und Konsistenz habe ich festgestellt, dass es (zusammen mit kleinen Klassengrößen) wesentlich einfacher ist, Zusammenführungen zu verwalten, wenn verschiedene Personen in einem Team zufällig in denselben Bereichen arbeiten.
Ich bin mir nicht sicher, ob es nur meine Vorstellungskraft ist, aber unterschiedliche Tools scheinen besser zu erkennen, wo gleichwertiger Code beim Zusammenführen beginnt und endet, wenn er ordentlich angeordnet ist. Schön gestalteter Code ist eine Freude zu verschmelzen. Ok, das war eine Lüge - aber der Schmerz ist immerhin auf einem überschaubaren Niveau.
quelle
Niemals eine leere Zeile, nicht in der gesamten Datei. Das heißt nicht, dass der Code keine Brüche enthält:
Leerzeilen dienen zum Öffnen von Codeabschnitten. In Ihrem Editor befinden sich einige Tastenkombinationen, mit denen Sie zur vorherigen / nächsten Leerzeile gelangen.
quelle