Wie wird beim Schreiben von Quellcode die bewährte Methode zur Beschränkung auf 80 Zeichen befolgt?

15

Wie Sie wissen, gibt es ein Best-Practice-Sprichwort

Begrenzen Sie eine Quellcodezeile auf 80 Zeichen.

Hier sind 2 Links:

Warum sind 80 Zeichen die 'Standard'-Grenze für die Codebreite?

Ist die Beschränkung auf 80 Zeichen in Zeiten von Breitbildmonitoren immer noch relevant?

Und ich bin mir sicher, dass Sie noch mehr Geld verdienen können, wenn Sie nach dieser bewährten Methode suchen.

Aber ich finde das extrem schwierig, hier ein Beispiel:

public class MyClass {

    public void myMethod() {

        final Map<String, List<MyInterfaceHere>> myReference

Sie rücken also jede Klasse, jede Methode und jede Anweisung ein.

Und ich bin bereits in Spalte 60 am Ende des letzten "e", das ich in "myReference" habe.

Ich habe noch 20 Leerzeichen. Rufe den Konstruktor auf und ordne das Objekt der Referenz zu, die ich habe.

Ich meine, sieht das wirklich besser aus:

public class MyClass {

    public void myMethod() {

        final Map<String, List<MyInterfaceHere>> myReference 
                = new HashMap<String, List<MyInterfaceHere>>(); 

Was ist hier die beste Praxis?

Koray Tugay
quelle
6
Wir machen es 140. 80 könnte in den Tagen von kleineren Bildschirmen und kleineren Druckern gut gewesen sein
tgkprog
7
Best Practice, es sei denn, Sie sind auf End-Of-Life-Versionen wie 5/6 wäre wahrscheinlich final Map<String, List<MyInterfaceHere>> myReference = new HashMap<>();(80 Zeichen mit Einrückung wie in Ihrem Beispiel)
Mücke
4
Eine Meta-Best-Practice besteht darin, Best Practices aus der Zeit vor zwanzig Jahren nicht blind anzuwenden. Damals, als eine 17-Zoll-CRT eine Auflösung von 1280 x 1024 aufwies, machten niedrigere Zeichenbegrenzungen Sinn, aber heute nicht.
TMN
2
Beachten Sie, dass ein Vorteil der Verwendung schmaler Textspalten darin besteht, dass mehrere Codeteile problemlos nebeneinander angezeigt werden können, anstatt sich über den gesamten verfügbaren Platz in Ihrer Anzeige zu erstrecken. 80 chars * 7 pixels/char = 560 pixels per file. Auf diese Weise passen zwei Dateien (1120 Pixel) bequem auf einen 1280 Pixel breiten Bildschirm oder drei (1680 Pixel) auf einen 1920 Pixel großen Bildschirm. In beiden Fällen bleibt etwas mehr Platz für Zeilennummern, Bildlaufleisten, Siegel und andere Elemente der Benutzeroberfläche . Oder sogar die gelegentlich etwas längere Linie.
8bittree
3
@ 8bittree Ich kann Code nebeneinander anzeigen - auf zwei Monitoren. Die Entwicklung auf einem einzigen Monitor ist wie das Fahren eines Autos mit nur einem Rad.

Antworten:

18

Die beste Vorgehensweise sollte darin bestehen, "die Länge einer Zeile so zu begrenzen, dass Sie, alle Ihre Kollegen und alle von Ihnen verwendeten Tools damit zufrieden sind" sowie einen gesunden Menschenverstand. 80 Zeichen scheinen sehr niedrig zu sein und die Lesbarkeit zu beeinträchtigen. Ich wurde einmal total ausgetrickst von einer Zeile wie dieser:

/* Very long comment to the end of the line */ realCode ();

wo der Funktionsaufruf auf dem Bildschirm nicht sichtbar war (und auf dem Bildschirm eines Kollegen nicht sichtbar war) ohne Angabe.

Ich stelle meinen Editor so ein, dass ein Rand von 100 Spalten angezeigt wird. Außerdem wird der angezeigte Code umbrochen, sodass während der Bearbeitung immer alles sichtbar ist und zu lange Zeilen in der Regel manuell in zwei oder manchmal mehr Zeilen aufgeteilt werden. Beten Sie, dass Ihr Editor geteilte Anweisungen gut formatiert, wenn die automatische Formatierung durchgeführt wird. Verwenden Sie einen Codierungsstil, der nicht zu tief verschachtelten Anweisungen führt. (Einige Leute erstellen ein Nest aus zwanzig if-Anweisungen, gefolgt von einem Ende aus zwanzig else-Anweisungen, was zu einer Einrückung von 200 Zeichen führt, und niemand kann herausfinden, welche anderen zu welchem ​​if gehören.)

In Ihrem speziellen Fall hat Swift einen Weg gefunden, dies zu vermeiden: Einer "let" -Variablen (die in anderen Sprachen ungefähr mit "final" identisch ist) muss genau einmal ein Wert zugewiesen werden, bevor sie verwendet wird, jedoch nicht unbedingt in der Deklaration , so dass Sie Ihre problematische Zeile in zwei unabhängige Anweisungen aufteilen können.

PS. Ich habe Zeilen in echtem menschlichem Code gefunden, die mehr als 400 Zeichen lang waren. Mit anderen Worten, Sie müssten eine Ewigkeit lang scrollen, um den Rest der Zeile zu lesen, selbst auf einem 24-Zoll-Monitor. Ich war nicht amüsiert :-(

gnasher729
quelle
10
Scheint, als /* Very long comment to the end of the line */ realCode ();müsste man schon einige andere Stilregeln brechen.
Robert Harvey
3
/* Very long comment to the end of the line */ realCode ();Dies ist ein Grund, warum IDEs Code-Formatierer haben, die den Kommentar und den Code automatisch in separate Zeilen setzen.
2
Es stammte aus derselben Quelle, die berüchtigt schrieb: "if (condition) \ n \ tgoto exit; \ n \ tgoto exit;". Nur ein paar Jahre zuvor.
gnasher729
Wenn ich die maximale Zeilenlänge auf 80 Zeichen einstelle, muss ich in Funktionen und Klassen sowie in OO denken, anstatt eine lange Textzeile zu schreiben, um alles in einer einzigen Aufnahme zu erledigen. Es bringt mich dazu, Programme zu schreiben, die andere leicht fertigstellen können. Zweitens, die Mehrheit der Programmierer (meiner Erfahrung nach), die ich in SV gesehen habe, arbeiten an ihren Laptops und haben keine großen Bildschirme, die ihnen ständig zur Verfügung stehen. Das Schreiben in 80 Zeichen pro Zeile hilft also jedem. Drittens können Sie Ihren großen Monitorbildschirm in mehrere Bereiche aufteilen und gleichzeitig Code anzeigen.
Alpha_989
3

Ja, es sieht besser aus. Das ist der Grund, warum die "Verwenden Sie keine überlangen Linien!" Maxime ist so sehr stark.

Ich verwende niemals diese schrecklich langen Konstruktorausdrücke. Ich würde immer verwenden

public class MyClass {

    public void myMethod() {

        final Map<String, List<MyInterfaceHere>> yReference = newMap();

für einen entsprechend definierten, statisch importierten Wert von newMap(). Ich halte es für einen gravierenden Fehler in Java, dass es keine eingebaute Version gibt.

Kilian Foth
quelle
1

Das Ziel ist nicht "Zeilen auf 80 Zeichen beschränken". Das Ziel ist "Machen Sie Ihren Code einfach zu lesen und zu verstehen". Die künstliche Zeichenbegrenzung von 80 hilft bei der Lesbarkeit, ist jedoch keine feste Regel, es sei denn, Ihr Team entscheidet, dass dies der Fall ist.

Sie haben nach der besten Vorgehensweise gefragt. Die beste Vorgehensweise besteht darin, "den Code so lesbar wie möglich zu gestalten". Wenn das mehr als 80 Zeichen erfordert, soll es so sein.

Bryan Oakley
quelle
1

Haben Sie keine Angst, die Eingabetaste zu drücken. Die meisten modernen Sprachen (einschließlich Java wie in Ihrem Beispiel) sind mit mehrzeiligen Anweisungen sehr zufrieden.

Überlegen Sie sich nur, wo Sie die Zeilen umbrechen, und Sie erhalten etwas, das in ein 80-Spalten-Limit passt und dennoch perfekt lesbar bleibt. Die offiziellen Java-Kodierungskonventionen legen sogar bevorzugte Stellen zum Brechen von Linien fest.

Richtig gemacht, ist eine sauber aufgebrochene Linie viel besser lesbar als eine, die von der Seite des Bildschirms verschwindet.

Simon B
quelle
1

Wenn Sie die Zeilenlänge / -breite des Codes erzwingen, verwenden Sie ein Tool.

  • Nachschärfer
  • Visual Assist
  • etc.

Die Entwickler entscheiden, welche Länge angemessen ist (80, 120, 200 usw.), und stellen diese Option im Tool ein.

Danach schreiben Sie einfach den Code wie gewohnt, ohne Rücksicht darauf, wie breit oder lang die Zeile ist. Sobald es funktionsfähig und fertig ist, klicken Sie mit der rechten Maustaste und wählen Sie Bereinigungscode oder eine ähnliche Option. Das Tool formatiert den Code wie angegeben und bricht lange Zeilen wie angegeben auf.

Sinnlos und einfach und jede Quelldatei wird auf die gleiche Weise formatiert.

Jon Raynor
quelle
0

Das 80 Zeichen-Limit mag heutzutage etwas zu kurz sein, aber es hilft. Ich würde all diesen Meinungen zustimmen, dass der Code auch gut formatiert sein sollte. zB Code

/ * Sehr langer Kommentar zum Zeilenende * / realCode ();

Kann innerhalb von 80 chr liegen, führt jedoch zu Verwirrung, da sich Anmerkungen und Codeoptionen in derselben Zeile befinden.

Das Limit von 80 Chr. Einzuhalten oder nicht, ist die Wahl des Einzelnen. Wenn die Dinge jedoch in einer einzigen Einstellung sichtbar sind, haben Programmierer und andere Rezensenten immer ein angenehmes Bild und Gefühl.

user220681
quelle