'Empfohlene' Dateilänge und Zeilenbreite [geschlossen]

9

Ich war neugierig, ob jemand von einer Empfehlung einer seriösen Quelle für die maximale Anzahl von Codezeilen für eine bestimmte Datei wusste. In Googles Closure Linter wird beispielsweise empfohlen, dass jede Zeile 80 Zeichen nicht überschreitet.

Devin G Rhode
quelle
Ihr Beispiel stimmt nicht mit der Frage überein. Ihre Frage fragt nach Zeilen pro Datei und Ihr Beispiel sind Zeichen pro Zeile.
Jason S
2
Es ist das gleiche Konzept - der quadratische Bereich, um den Sie scrollen müssen, egal ob horizontal oder vertikal.
Devin G Rhode

Antworten:

11

Eine Datei sollte kurz genug sein, damit Sie jede Funktion oder Methode finden können, ohne mehrmals nach ihr suchen oder sich eine Suchzeichenfolge merken zu müssen. Die Metrik, die ich verwende, ist die Zeit, die ich damit verbringe, in einer Datei nach Code zu suchen, anstatt ihn zu lesen. Wenn dies auffällt, ist es Zeit, die Datei oder Klasse neu zu partitionieren.

Eine gute Größe für einen einfachen Codeblock ist sowohl in der Breite als auch in der Höhe kurz genug, damit Sie während einer Überprüfung des Gruppencodes die Eingeweide projizieren können und alles passen kann, ohne dass die Schriftart so klein ist, dass der Typ auf der Rückseite Der Konferenzraum kann es nicht lesen. Diese Größe hilft auch, wenn Sie jemals aufgefordert werden, Code zu erklären, wenn Sie nur ein mobiles Gerät oder Tablet dabei haben.

hotpaw2
quelle
Dies ist die hilfreichste Richtlinie, vielen Dank!
Devin G Rhode
Gibt es eine zu kurze Dateilänge ? Ich habe ein Projekt mit 35 Dateien mit einer durchschnittlichen Länge von ~ 200 Zeilen.
Dan
1
@ Dan Ich würde "Nein" als Antwort wagen. Wenn das Öffnen einer Datei in Ihrem Setup zu schwierig ist, ist es möglicherweise an der Zeit, Ihr Setup zu verbessern (dh VIM-Plugins, bessere IDE, was auch immer Emacs tun)
Mike Graf
@ Dan: Eine Datei zu kurz? Möglich, wenn Sie mehr Zeit damit verbringen, nach der richtigen winzigen Datei für ein paar LOC zu suchen, anstatt sie in einer logisch und eng verwandten (aber nicht zu langen) Datei zu finden.
hotpaw2
9

Es gibt so etwas nicht, und wenn es so wäre, würde es stark davon abhängen, welche Sprache Sie verwenden (das Gleiche tun Sie in Assembler im Vergleich zu C # oder Java zum Beispiel).

Für die höheren Sprachen können Sie diese SO-Diskussion sehen. Für Java / C # empfiehlt Bob Martin maximal 10 bis 20 Zeilen pro Methode . Es gibt keine Diskussion über Dateien, da diese nicht relevant sind und davon abhängen, was die Klasse tun soll.

In Bezug auf das Limit von 80 Zeichen pro Zeile ist dies ein Rückfall in die Zeit der Lochkarten. Wenn jedoch die Zeilen zu lang werden, leidet die Lesbarkeit.

Oded
quelle
5
+1: Es ist gut, Zeilen mit einer Breite von weniger als 80 Zeichen zu halten. einfacher zu lesen und bietet mehr Platz für Fenster nebeneinander
Donal Fellows
6
Persönlich denke ich, dass die Lesbarkeit leidet, wenn eine Zeile in mehrere Zeilen aufgeteilt wird, um in 80 oder weniger zu passen. Es wird auch Zeit verschwendet, um zu entscheiden, wo die Pausen eingelegt werden sollen, oder darüber zu streiten.
Ergosys
5

Datei- und Zeilenlängen sind Messungen von Sekundäreffekten der Komplexität und als solche sehr variabel. Was Sie anstreben sollten, ist Code ohne unnötige Komplexität, nicht eine bestimmte maximale Zeilenanzahl.

Lange Dateien weisen darauf hin, dass Methoden, Unterprogramme oder Klassen zu komplex sind (zu viele Dinge tun, nicht ausreichend berücksichtigt usw.).

Lange Linien deuten darauf hin, dass Ausdrücke zu komplex sind.

Dies sind Gerüche, die auf ein potenzielles Codeproblem hinweisen, nicht genau definierte Zielmetriken.

Rein Henrichs
quelle
3

Die Zeilenlänge sollte so sein, dass Sie nicht durch den Bildschirm scrollen müssen, um die gesamte Zeile anzuzeigen. Das hängt von der Größe und Auflösung des Monitors ab.

Methoden und Funktionen sind am besten geeignet, wenn sie auf einen Bildschirm passen.

Dateien sollten nicht zu lang sein. Am besten sind kurze Dateien, in denen die Klasse und die Implementierung leicht zu verstehen sind.
Einmal habe ich an einem Projekt gearbeitet, das eine 10-Klines-Datei hatte. Es war, als würde man ein sehr komplexes Buch lesen. Muss ich angeben, wie viele Probleme diese Implementierung verursacht hat?

BЈовић
quelle
Für Code sollte kein winziger Monitor für große Monitore erforderlich sein, insbesondere für Gruppencode-Überprüfungen.
hotpaw2
"Die Zeilenlänge sollte so sein, dass Sie nicht durch den Bildschirm scrollen müssen, um die gesamte Zeile zu sehen." - Was ist, wenn Ihr Editor einschließt?
Dan Dascalescu
3

80 Zeichen!

Ich erinnere mich, dass ich bei COBOL Quellcodedateien für Abrechnungsprogramme mit etwa 80 Seiten und mehr gesehen habe. Natürlich kann ich nicht sehen, dass dies fast üblich ist, aber 80 Zeichen sind ebenso lächerlich.

Wenn Sie aus Sicht der Klassengröße versuchen, diesen Vorschlag auf eine typische Kundenklasse mit etwa 80 Eigenschaften und etwa 20 Methoden anzuwenden, müssen Sie die Klasse in mehrere andere aufteilen und den Code in der Tat sehr unübersichtlich machen.

Keine Chance
quelle
1
Absolut. 80 Zeichen bedeuten, dass Sie einen Codeabschnitt für das Brainstorming mit einer angemessenen Schriftgröße auf einem A4 / Letter-Porträtblatt ausdrucken können. Dies bedeutet auch, dass Sie auf einem vernünftigen Entwicklungscomputermonitor drei Kopien des Quellcodes nebeneinander anzeigen können, ohne horizontal zu scrollen, um Drei-Wege-Zusammenführungen durchzuführen (lustig, dass 80x8x3 1920 * 8 'ist).
Mark Booth
2

Ich versuche, Klassen und Methoden kurz zu halten, mache mir aber nicht so viele Gedanken über die Zeilenlänge. In diesen Tagen mit Breitbildschirmen und langen Kennungen denke ich, dass achtzig Zeichen viel zu wenig sind. Es erfordert einige Arbeit, um Anweisungen zu brechen, damit sie leicht gelesen werden können, und mit einer Beschränkung von achtzig Zeichen kommt dies ziemlich häufig vor. Ich denke, 120 oder 130 Spalten pro Zeile sind vernünftiger.

Kevin Cline
quelle
Ich verwende vertikal gespiegelte 22-Zoll-Monitore, wodurch ich auf jedem Bildschirm einen Durchmesser von 1080 Pixel habe (und vertikal können 104 Codezeilen gleichzeitig sichtbar sein!). In solchen Szenarien ist es hilfreich, die Zeilenbreite auf 90 oder weniger Zeichen zu beschränken.
Roy Tinker