Gibt es heutzutage einen gültigen Grund für die Durchsetzung einer maximalen Breite von 80 Zeichen in einer Codedatei? [geschlossen]

159

Ernsthaft. Auf einem 22-Zoll-Monitor deckt er nur ein Viertel des Bildschirms ab. Ich benötige etwas Munition, um diese Regel zu umgehen.


Ich sage nicht, dass es keine Grenze geben sollte; Ich sage nur, 80 Zeichen sind sehr klein.

TraumaPony
quelle
Alle Antworten geben so ziemlich an, was ich hinzufügen wollte. Um Ihnen ein Beispiel aus dem wirklichen Leben zu geben: Ich habe eine x61s, die Auflösung beträgt 1024x768. Wenn ich unterwegs bin, habe ich keinen schicken Monitor. Das Öffnen von Code in meiner IDE ist schmerzhaft, wenn diese Regel überschritten wird.
Bis zum
Mögliches Duplikat von stackoverflow.com/questions/95575/…
Auch wenn Sie einen Satz von 3 Monitoren haben. Dies ist kein Grund, den Kopf von rechts nach links und zurück zu schütteln. Für immer. Ah-ha-ha. Eigentlich bewegt sich das Auge schneller als der Kopf. Kennen Sie Kolumnen in Zeitungen? Der Grund für die Breite ist die Bequemlichkeit von Auge / Kopf / Mann.
Ivan Black

Antworten:

257

Ich denke, die Praxis, Code auf 80 (oder 79) Spalten zu belassen, wurde ursprünglich entwickelt, um die Bearbeitung von Code auf dummen Terminals mit 80 Spalten oder auf Ausdrucken mit 80 Spalten zu unterstützen. Diese Anforderungen sind jetzt größtenteils weg, aber es gibt immer noch triftige Gründe, die 80-Spalten-Regel beizubehalten:

  • Um ein Umbrechen beim Kopieren von Code in E-Mails, Webseiten und Bücher zu vermeiden.
  • Anzeigen mehrerer Quellfenster nebeneinander oder Verwenden eines Diff-Viewers nebeneinander.
  • Zur Verbesserung der Lesbarkeit. Schmaler Code kann schnell gelesen werden, ohne dass Sie Ihre Augen von einer Seite zur anderen scannen müssen.

Ich denke, der letzte Punkt ist der wichtigste. Obwohl die Größe und Auflösung der Displays in den letzten Jahren zugenommen hat, haben die Augen dies nicht getan .

Will Harris
quelle
7
Sie mögen "weitgehend verschwunden" sein, aber nicht ganz. Ich arbeite normalerweise mit zwei verschiedenen Setups: 1) in einem SSH-Fenster, das mit einem Remote-Computer verbunden ist. Das ist standardmäßig 80 Zeichen breit. und 2) In Visual Studio mit zwei nebeneinander angeordneten Bedienfeldern, sodass Header und CPP-Datei gleichzeitig angezeigt werden.
Enno
10
@steffenj: Eigentlich eher Bücher zu schießen für etwa 66 Zeichen pro Zeile (obwohl dies etwas variiert in Abhängigkeit von anderen Parametern abhängig) , weil mehr Linien tun das Lesen erschwert. Die maximale Länge der Codezeile könnte argumentiert werden, aber 80 ist aus historischen und praktischen Gründen zweckmäßig.
Steve S
68
Das Problem besteht darin, dass die Leute gezwungen werden, die Zeilenlängen kurz zu halten. Sie neigen dazu, weniger aussagekräftige Namen zu verwenden.
Ian Ringrose
4
Ich finde die Bemerkungen zur Lesbarkeit sehr interessant, weil ich an gedruckten Programmierartikeln / Büchern / ... wirklich hasse, dass die kurzen Zeilen, die für die Codebeispiele verwendet werden, so extrem schwer zu lesen sind. Es kann sehr sinnvoll sein, etwas in eine neue Zeile zu verschieben, aber die Gruppierung sollte logisch erfolgen und den Ausdruck rekursiv zerlegen, nicht weil das Ausgabegerät versehentlich seine Begrenzung erreicht hat. IOW, ich finde, dass Geräte, die so enge Einschränkungen auferlegen, nicht gut zum Anzeigen von Code geeignet sind.
Chris Lercher
4
Ich denke, das Problem bei 80-Spalten-Enforcern ist, dass sie vergessen, dass der Code stattdessen in vertikaler Richtung wächst. Sie haben das gleiche Problem, aber in vertikaler Richtung UND oben in diesem modernen Code sieht es schrecklich aus, wenn Sie einzelne Anweisungen über zwei oder manchmal bis zu vier oder fünf Zeilen aufteilen müssen. Es ist NICHT besser lesbar. Mit modernem Code meine ich beschreibende Variablennamen und qualifizierende Vererbung, Namespaces, Klassen usw. Bitte stoppen Sie die 80-Spalten-Nonsese, verwenden Sie stattdessen den gesunden Menschenverstand. 120 ist besser, sollte aber auch keine Regel sein.
Larswad
79

Der Ursprung der 80-Spalten-Textformatierung liegt vor den 80-Spalten-Terminals - die IBM Lochkarte stammt aus dem Jahr 1928 ! Dies erinnert an die (apokryphe) Geschichte, dass die US-Eisenbahnspur durch die Breite der Wagenräder im römischen Großbritannien bestimmt wurde.

Ich finde es manchmal etwas einschränkend, aber es ist sinnvoll, ein Standardlimit zu haben , also 80 Spalten.

Hier ist das gleiche Thema, das von Slashdot behandelt wird .

Und hier ist eine Fortran-Erklärung der alten Schule:

FORTRAN Lochkarte

John Carter
quelle
60

80 Zeichen sind heutzutage eine lächerliche Grenze. Teilen Sie Ihre Codezeilen dort auf, wo es sinnvoll ist, und nicht nach einer beliebigen Zeichenbeschränkung.

Craig Day
quelle
Die Zeichenbeschränkung sagt Ihnen nicht, WO Sie eine Codezeile teilen müssen, sondern WANN
gztomas
Nein ist es nicht. Wenn Sie eine Zeile mit mehr als 80 Zeichen schreiben, haben Sie wahrscheinlich bereits ein Problem mit der Komplexität der Ausdrücke oder der Benennungsstrategie. Wie andere bereits erwähnt haben, ist die Lesbarkeit ein Hauptanliegen und die Lesegeschwindigkeit sinkt allmählich über 60-66 Zeichen (Typografie, basierend auf der menschlichen Physiologie).
Sola
@sola Dein Kommentar erscheint hier mit 98 Zeichen und es ist eine dichte natürliche Nicht-Muttersprache (für mich) zu verstehen. Vollständig lesbar. Ein Code mit bis zu 3-4 Einzügen, Syntaxmarkierungen usw. ist noch einfacher.
viyps
Ich habe diese Antwort versehentlich abgelehnt und kann sie nicht mehr bewerten. :(
Andy
35

Sie sollten es nur für alle tun, die keinen 22-Zoll-Breitbildmonitor haben. Persönlich arbeite ich an einem 17-Zoll-4: 3-Monitor und finde das mehr als ausreichend breit. Ich habe jedoch auch 3 dieser Monitore, so dass ich immer noch viel nutzbaren Bildschirmplatz habe.

Darüber hinaus hat das menschliche Auge tatsächlich Probleme beim Lesen von Text, wenn die Zeilen zu lang sind. Es ist zu leicht, sich in der Linie zu verlieren, in der Sie sich befinden. Zeitungen haben einen Durchmesser von 17 Zoll (oder so ähnlich), aber Sie sehen nicht, dass sie den ganzen Weg über die Seite schreiben. Gleiches gilt für Zeitschriften und andere gedruckte Artikel. Es ist tatsächlich einfacher zu lesen, wenn Sie die Spalten schmal halten.

Kibbee
quelle
14
Nicht, wenn Sie der Mischung Einrückungen hinzufügen. Wenn Sie 4 Leerzeichen pro Einzug verwenden und sich in einem Namespace-> class-> method-> if-> for befinden, ist das 1/5 Ihres Leerzeichens.
TraumaPony
Sie können die Regel immer auf 80 Zeichen aus dem Einzug festlegen. Auf diese Weise kann das Auge ihm leicht folgen.
Vincent McNabb
Manchmal (aber nicht immer) wünschte ich mir, .Net hätte einen automatischen Namespace, damit Sie den Namespace in der Datei nicht definieren müssen. Das beeinträchtigt die Ausrichtung Ihres Codes erheblich. Wenn Sie verschachtelte Namespaces möchten, haben Sie wirklich große Probleme.
Kibbee
13
Das Lesen von Prosa ist jedoch nicht dasselbe wie das Lesen von Code.
Atario
3
+1 für Zeitungen, gutes Beispiel. @Atario, das Lesen von GUTEM Code ist dem Lesen von Prosa sehr ähnlich.
Todd Chaffee
23

Wenn Sie eine Folge von Anweisungen haben, die sich mit geringfügigen Abweichungen wiederholen, können Sie die Ähnlichkeiten und Unterschiede leichter erkennen, wenn sie in Linien gruppiert sind, sodass die Unterschiede vertikal ausgerichtet sind.

Ich würde argumentieren, dass das Folgende viel besser lesbar ist, als es gewesen wäre, wenn ich es auf mehrere Zeilen aufgeteilt hätte:

switch(Type) {
case External_BL:   mpstrd["X"] = ptDig1.x - RadialClrX;    mpstrd["Y"] = ptDig1.y - RadialClrY;    break;
case External_BR:   mpstrd["X"] = ptDig1.x + RadialClrX;    mpstrd["Y"] = ptDig1.y - RadialClrY;    break;
case External_TR:   mpstrd["X"] = ptDig1.x + RadialClrX;    mpstrd["Y"] = ptDig1.y + RadialClrY;    break;
case External_TL:   mpstrd["X"] = ptDig1.x - RadialClrX;    mpstrd["Y"] = ptDig1.y + RadialClrY;    break;
case Internal_BL:   mpstrd["X"] = ptDig1.x + RadialClrX;    mpstrd["Y"] = ptDig1.y + RadialClrY;    break;
case Internal_BR:   mpstrd["X"] = ptDig1.x - RadialClrX;    mpstrd["Y"] = ptDig1.y + RadialClrY;    break;
case Internal_TR:   mpstrd["X"] = ptDig1.x - RadialClrX;    mpstrd["Y"] = ptDig1.y - RadialClrY;    break;
case Internal_TL:   mpstrd["X"] = ptDig1.x + RadialClrX;    mpstrd["Y"] = ptDig1.y - RadialClrY;    break;
}

Update: In den Kommentaren wurde vorgeschlagen, dass dies eine prägnantere Methode wäre, um Folgendes zu tun:

switch(Type) {
  case External_BL: dxDir = - 1; dyDir = - 1; break;
  case External_BR: dxDir = + 1; dyDir = - 1; break;
  case External_TR: dxDir = + 1; dyDir = + 1; break;
  case External_TL: dxDir = - 1; dyDir = + 1; break;
  case Internal_BL: dxDir = + 1; dyDir = + 1; break;
  case Internal_BR: dxDir = - 1; dyDir = + 1; break;
  case Internal_TR: dxDir = - 1; dyDir = - 1; break;
  case Internal_TL: dxDir = + 1; dyDir = - 1; break;
}
mpstrd["X"] = pt1.x + dxDir * RadialClrX;
mpstrd["Y"] = pt1.y + dyDir * RadialClrY; 

Obwohl es jetzt in 80 Spalten passt, denke ich, dass mein Standpunkt immer noch besteht und ich gerade ein schlechtes Beispiel ausgewählt habe. Es zeigt immer noch, dass das Platzieren mehrerer Anweisungen in einer Zeile die Lesbarkeit verbessern kann.

Sam Hasler
quelle
8
Wenn Sie sagen, dass es von Zeile zu Zeile nur kleine Unterschiede gibt, sagen Sie auch, dass es viel redundanten Code gibt. Wenn Sie etwas davon entfernen, kann dies die Anzahl der Spalten erheblich verringern und dennoch vertikal ausgerichtet werden.
Foraidt
@mxp: vereinbart. Wenn es eine präzisere Art gibt, das oben Gesagte zu schreiben, würde mich das interessieren.
Sam Hasler
Ich stimme der allgemeinen Idee zu, aber dem Beispiel ... Was ist damit: switch (...) {case ... BL: dxDir = - 1; dyDir = -1; brechen; case ... BR: dxDir = + 1; dyDir = -1; brechen; ...} ... ["X"] = pt1.x + dxDir * Rad ... X; ... ["Y"] = pt1.y + dyDir * Rad ... Y;
Yarik
38
Die Tatsache, dass ich das erste der beiden Beispiele horizontal scrollen muss, beweist, dass kürzere Zeilen besser sind :-)
Enno
1
Ich verstehe den Hass zum Scrollen nicht? Es ist eine verbreitete Meinung und ich sage nicht, dass es falsch ist, ich verstehe es einfach nicht. Besonders wenn Sie sich in einem Code-Editor befinden, müssen Sie nicht einmal Ihre Hände von der Tastatur bewegen, um zur Maus zu gelangen - direkt (ctrl+)arrowüber oder end
drücken Sie
21

Das Drucken einer monospaced Schriftart in Standardgrößen beträgt (auf A4-Papier) 80 Spalten x 66 Zeilen.

Josh
quelle
16

Ich nutze den Vorteil größerer Bildschirme, um mehrere Codeteile nebeneinander zu haben.

Du wirst keine Munition von mir bekommen. Tatsächlich würde ich es hassen, wenn sich das ändern würde, da ich in Notfällen immer noch seltene Fälle sehe, in denen ich Code von einer Textkonsole aus ändern muss.

Twan
quelle
14

Superlange Zeilen sind schwerer zu lesen. Nur weil Sie 300 Zeichen auf Ihrem Monitor anzeigen können, heißt das nicht, dass Sie die Zeilen so lang machen sollten. 300 Zeichen sind auch viel zu komplex für eine Anweisung, es sei denn, Sie haben keine Wahl (ein Aufruf, der eine ganze Reihe von Parametern benötigt.)

Ich verwende in der Regel 80 Zeichen, aber ich werde darüber hinausgehen, wenn das Erzwingen einen Zeilenumbruch an einer unerwünschten Stelle bedeuten würde.

Loren Pechtel
quelle
Es gibt Studien, die zeigen, dass Menschen x Zeichen / Wörter lesen und befolgen können, bevor sie den Überblick verlieren. Ich denke, 80 ist irgendwo drin. Ich habe jedoch keine Quellen, um dies zu belegen.
Bis zum
Ja, ich denke wirklich, es geht nicht darum, die Zeilen kurz zu halten, sondern darum, die Zeilen sauber / prägnant / lesbar / verständlich zu halten.
KOGI
Wenn Sie einen (einen Aufruf, der eine ganze Reihe von Parametern benötigt) haben, müssen Sie trotzdem einige Umgestaltungen vornehmen.
Zarremgregarrok
@ Zarremgregarrok Ich habe einige sehr lange Parameterlisten in Microsoft-APIs gesehen.
Loren Pechtel
@LorenPechtel Ist das gut geschrieben?
Zarremgregarrok
8

Das einzige, was ich erzwinge, um innerhalb von 80 Zeichen zu bleiben, ist mein Kommentar.

Persönlich ... Ich widme meine ganze Gehirnleistung (was wenig da ist) dem richtigen Codieren. Es ist ein Schmerz, zurück zu gehen und alles bei der 80-Zeichen-Grenze aufzubrechen, wenn ich meine Zeit für die nächste Funktion verbringen könnte . Ja, Resharper könnte es für mich tun, aber dann macht es mir ein wenig Angst, dass ein Produkt eines Drittanbieters Entscheidungen über mein Codelayout trifft und es ändert ("Bitte teilen Sie meinen Code nicht in zwei Zeilen auf HAL. HAL?" ).

Trotzdem arbeite ich in einem ziemlich kleinen Team und alle unsere Monitore sind ziemlich groß. Die Sorge darüber, was meine Programmierkollegen stört, ist in dieser Hinsicht kein großes Problem.

Scheint, als ob einige Sprachen längere Codezeilen fördern, um mehr Geld zu verdienen (kurze Hand, wenn dann Aussagen).

domusvita
quelle
7

Ich habe zwei 20 "1600x1200-Monitore und halte mich an 80 Spalten, da ich mehrere Texteditorfenster nebeneinander anzeigen kann. Bei Verwendung der Schriftart '6x13' (die traditionelle xterm-Schriftart) nehmen 80 Spalten 480 Pixel plus Bildlaufleiste ein Dies ermöglicht es einem, drei Fenster dieses Typs auf einem 1600x1200-Monitor zu haben. Unter Windows wird die Lucida Console-Schriftart dies nicht ganz tun (die minimal verwendbare Größe ist 7 Pixel breit), aber ein 1280x1024-Monitor zeigt zwei Spalten und an Auf einem 1920 x 1200-Monitor wie einem HP LP2465 wird 3 angezeigt. Außerdem bleibt an der Seite etwas Platz für die verschiedenen Explorer-, Eigenschaften- und anderen Fenster von Visual Studio.

Außerdem sind sehr lange Textzeilen schwer zu lesen. Für Text ist das Optimum 66 Zeichen. Es gibt einen Punkt, an dem übermäßig lange Bezeichner kontraproduktiv werden, weil sie es schwierig machen, Code kohärent zu gestalten. Gutes Layout und Einrückung liefern visuelle Hinweise auf die Codestruktur, und einige Sprachen (Python fällt mir ein) verwenden hierfür ausdrücklich Einrückungen.

Die Standardklassenbibliotheken für Java und .Net weisen jedoch in der Regel sehr lange Bezeichner auf, sodass nicht unbedingt garantiert werden kann, dass dies möglich ist. In diesem Fall hilft das Anlegen von Code mit Zeilenumbrüchen immer noch, die Struktur explizit zu machen.

Beachten Sie, dass Sie Windows - Versionen von ‚6x13‘ Schriftarten bekommen hier .

ConcernedOfTunbridgeWells
quelle
Danke, dass du das gesagt hast! Große Monitore sind umso mehr ein Grund für das Limit von 80 Zeilen, sodass Sie mehr Fenster nebeneinander anbringen können. Ganz zu schweigen davon, dass es manchmal schön ist, Quellcode (auf Papier) drucken zu können. Oder fügen Sie Snippets in andere Dokumente ein.
Dreeves
7

Die Leute sagen, lange Codezeilen seien in der Regel komplex. Betrachten Sie eine einfache Java-Klasse:

public class PlaintiffServiceImpl extends RemoteServiceServlet implements PlaintiffService {

Dies ist 94 Zeichen lang und der Klassenname ist ziemlich kurz (für GWT-Standards). Es wäre schwierig, in zwei Zeilen zu lesen, und es ist in einer Zeile sehr gut lesbar. Da es pragmatisch ist und somit "Abwärtskompatibilität" ermöglicht, würde ich sagen, dass 100 Zeichen die richtige Breite haben.

Matyas
quelle
5
Ich bin kein Fan von horizontalen Bildlaufleisten
Bryc
9
Ich bin überrascht, dass dies niemand gesagt hat, da ich einige Jahre zu spät zu dieser Diskussion komme, aber ich denke, dass Zeilenumbrüche (möglicherweise mit einem Einzug zur Klarheit) kurz vor dem Erweitern und / oder "Implementieren" von Schlüsselwörtern immer noch sehr viel bewirken würden lesbarer Code.
mtraceur
2
Ich liebe die Tatsache, dass dort steht "es ist in einer Zeile sehr gut lesbar", während ich gleichzeitig nicht das gesamte Code-Snippet lesen kann, da es den horizontalen Raum im Browser überläuft. Punkt widerlegt.
Oligofren
6

Die anderen Antworten haben die Dinge bereits gut zusammengefasst, aber es lohnt sich auch zu überlegen, wann Sie Code kopieren und in eine E-Mail einfügen möchten, oder wenn nicht, dann einen Unterschied.

Dies ist eine Zeit, in der eine "maximale Breite" nützlich ist.

user14038
quelle
6

Sie sind nicht die einzige Person, die Ihren Code pflegen wird.

Die nächste Person, die dies tut, hat möglicherweise einen 17-Zoll-Bildschirm oder benötigt möglicherweise große Schriftarten, um den Text zu lesen. Das Limit muss irgendwo liegen und 80 Zeichen sind die Konvention aufgrund früherer Bildschirmbeschränkungen. Können Sie sich einen neuen Standard vorstellen (120) und Warum ist es eine gute Idee, diese andere als "das passt auf meinen Monitor mit Xpt-Schriftart?"

Denken Sie daran, dass es zu jeder Regel immer Ausnahmen gibt, sodass Sie eine bestimmte Zeile oder einen bestimmten Codeblock haben, die sinnvoll sind, mehr als 80 Zeichen zu haben und dann ein Rebell zu sein.

Aber nehmen Sie sich zuerst die Zeit zu überlegen: "Ist dieser Code wirklich so schlecht, dass er nicht innerhalb von 80 Zeichen leben kann?"

pappes
quelle
1
Ich werde mit 80 Zeichen leben, wenn ich 2spc Tabstops haben kann. Besser noch, verwenden Sie tatsächlich Tabulatoren zum Einrücken. Die Anforderung ist, wenn Tabsize = 2 ist, in 80 Spalten passt und die meiste Zeit 4 verwendet, um die Lesbarkeit zu verbessern. Auf diese Weise können Sie, wenn Sie wirklich auf 80 Spalten drosseln müssen, dies zu einem Preis tun.
Joshua
5

Im Linux-Codierungsstandard behalten sie nicht nur die Beschränkung auf 80 Zeichen bei, sondern verwenden auch Einrückungen mit 8 Leerzeichen.

Ein Teil der Argumentation ist, dass Sie in Betracht ziehen sollten, eine Einrückungsstufe in eine separate Funktion zu verschieben, wenn Sie jemals den richtigen Rand erreichen.

Dadurch wird der Code klarer, da es unabhängig von den Einrückungslängen schwieriger ist, Code mit vielen verschachtelten Steuerstrukturen zu lesen.

Ali
quelle
3
Wie wäre es mit dem Lesen von Code mit vielen Funktionsaufrufen? Sicher gibt es einen Kompromiss zwischen diesen beiden Ansätzen ...
Zsolt Török
5

Ich habe meinen Code auf 100 Zeichen erweitert, was bequem in weniger als die Hälfte meines Bildschirms auf meinem Macbook passt. 120 Zeichen sind wahrscheinlich die Grenze, bevor die Zeilen zu lang und komplex werden. Sie möchten nicht zu weit gehen, sonst fördern Sie zusammengesetzte Anweisungen und tief verschachtelte Kontrollstrukturen.

Der rechte Rand ist die Art und Weise, wie die Natur Sie auffordert, ein zusätzliches Methoden-Refactoring durchzuführen .

Schwern
quelle
5

Ich frage mich, ob dies heutzutage mehr Probleme verursachen könnte. Denken Sie daran, dass es in C (und möglicherweise in anderen Sprachen) Regeln gibt, wie lange ein Funktionsname sein kann. Daher werden im C-Code häufig sehr schwer verständliche Namen angezeigt. Das Gute ist, dass sie nicht viel Platz beanspruchen. Aber jedes Mal, wenn ich Code in einer Sprache wie C # oder Java betrachte, sind die Methodennamen oft sehr lang, was es nahezu unmöglich macht, Ihren Code auf einer Länge von 80 Zeichen zu halten. Ich glaube nicht, dass heute 80 Zeichen gültig sind, es sei denn, Sie müssen in der Lage sein, den Code usw. zu drucken.

Jonas
quelle
5

Als Autor der Kodierungsrichtlinien für meinen Arbeitgeber habe ich die Zeilenlänge von 80 auf 132 erhöht. Warum dieser Wert? Nun, wie andere betonten, ist 80 die Länge vieler alter Hardware-Terminals. Und 132 ist auch! Dies ist die Linienbreite, wenn sich die Terminals im Breitbildmodus befinden . Jeder Drucker kann auch Hardcopies im Breitbildmodus mit einer komprimierten Schriftart erstellen.

Der Grund, nicht bei 80 zu bleiben, ist, dass ich eher

  • bevorzugen längere Namen mit einer Bedeutung für Bezeichner
  • Machen Sie sich keine Gedanken über Typedefs für Strukturen und Aufzählungen in C (sie sind SCHLECHT, sie verbergen nützliche Informationen! Fragen Sie Peter van der Linden in "Deep C Secrets", wenn Sie es nicht glauben), sodass der Code mehr struct FOO func(struct BAR *aWhatever, ...)als nur Code von Typedef-Fanatikern enthält .

und nach diesen Regeln verursachen nur 80 Zeichen / Zeile häufiger hässliche Zeilenumbrüche, als meine Augen für akzeptabel halten (meistens in Prototypen und Funktionsdefinitionen).

Jens
quelle
4

Wie andere gesagt haben, ist es meiner Meinung nach am besten, (1) mehrere Dateien nebeneinander vertikal zu drucken und (2) anzuzeigen.

Thomas Owens
quelle
4

Ich möchte meine Breite auf etwa 100 Zeichen beschränken, um zwei SxS-Editoren auf einem Breitbildmonitor zuzulassen. Ich glaube nicht, dass es einen guten Grund mehr für ein Limit von genau 80 Zeichen gibt.

Jamie Eisenhart
quelle
4

Verwenden Sie proportionale Schriftarten.

Es ist mein ernst. Normalerweise kann ich die Äquivalenz von 100-120 Zeichen in einer Zeile erhalten, ohne die Lesbarkeit oder Druckbarkeit zu beeinträchtigen. Mit einer guten Schriftart (z. B. Verdana) und Syntaxfarbe ist das Lesen sogar noch einfacher. Es sieht für ein paar Tage etwas seltsam aus, aber man gewöhnt sich schnell daran.

bgiles
quelle
Wirklich schlechte Idee, wenn Sie "Einrückungen" und monospaced Schriftarten verwenden möchten.
Bersaelor
2
@Bersaelor Nein, es funktioniert einwandfrei, wenn Sie immer nur Tabulatoren einrücken und die Tabulatorbreite richtig einstellen (Breite 4 monospaced sind wie vielleicht 7 proportional). Einrückung funktioniert, Sie können einfach keine ASCII-Grafik erstellen, aber ich glaube nicht, dass ASCII-Grafik in den Code gehört.
Maaartinus
Persönlich bin ich beim Programmieren ganz auf der anderen Seite. Ich finde Proportionalcode wirklich schwer zu lesen. Manchmal konfiguriere ich die IDE sogar für die Verwendung von Monospace-Schriftarten (ja, einschließlich Menüs).
Sebastian Mach
2

Ich versuche aus einem einfachen Grund, die Anzahl der Zeichen auf 80 zu beschränken: Zu viel mehr bedeutet, dass mein Code zu kompliziert wird. Übermäßig ausführliche Eigenschafts- / Methodennamen, Klassennamen usw. verursachen ebenso viel Schaden wie knappe.

Ich bin in erster Linie ein Python-Codierer, daher ergeben sich zwei Einschränkungen:

  1. Schreiben Sie keine langen Codezeilen
  2. Nicht zu viel einrücken

Wenn Sie zwei oder drei Einrückungsstufen erreichen, wird Ihre Logik verwirrend. Wenn Sie nicht einen einzelnen Block auf derselben Seite behalten können, wird Ihr Code zu kompliziert und schwierig, um ihn sich zu merken. Wenn Sie eine einzelne Zeile nicht innerhalb von 80 Zeichen halten können, wird Ihre Zeile zu kompliziert.

In Python ist es einfach, relativ präzisen Code (siehe Codegolf) auf Kosten der Lesbarkeit zu schreiben, aber es ist noch einfacher, ausführlichen Code auf Kosten der Lesbarkeit zu schreiben. Hilfsmethoden sind weder eine schlechte Sache noch Hilfsklassen. Übermäßige Abstraktion kann ein Problem sein, aber das ist eine weitere Herausforderung bei der Programmierung.

Wenn Sie Zweifel an einer Sprache wie C haben, schreiben Sie Hilfsfunktionen und fügen Sie sie ein, wenn Sie nicht den Aufwand haben möchten, eine andere Funktion aufzurufen und zurückzuspringen. In den meisten Fällen erledigt der Compiler die Dinge intelligent für Sie.

Dan Udey
quelle
2

Es gibt bereits viele gute Antworten darauf, aber es ist erwähnenswert, dass Sie in Ihrer IDE möglicherweise eine Liste der Dateien links und eine Liste der Funktionen rechts (oder eine andere Konfiguration) haben.

Ihr Code ist nur ein Teil der Umgebung.

Dean Rather
quelle
2

Wenn ich 80 Zeichen nicht erzwinge, bedeutet dies schließlich, dass Wörter umbrochen werden.
IMO, jede Länge, die für eine Linie mit maximaler Breite gewählt wird, ist nicht immer angemessen, und der Zeilenumbruch sollte eine mögliche Antwort sein.
Und das ist nicht so einfach, wie es sich anhört.

Es ist in jedit (Quelle: jedit.org ) implementiert, das Zeilenumbruch bietetAlt-Text

Aber es wird in der Finsternis von einer langen Zeit bitter vermisst ! (seit 2003), hauptsächlich, weil ein Zeilenumbruch für den Texteditor Folgendes beinhaltet:

  • Umbrochene Zeileninformationen sind für den Textbetrachter, die Code-Navigation und vertikale Lineale bestimmt.
  • Unverpackte Zeileninformationen sind für Funktionen wie "Gehe zu Zeile", "Linienspalte für die Zeilennummerierung", "Aktuelle Zeilenhervorhebung" und "Speichern der Datei" erforderlich.
VonC
quelle
1

Ich befolge tatsächlich eine ähnliche Regel für meinen eigenen Code, aber nur, weil Code auf eine A4-Seite gedruckt wird - 80 Spalten entsprechen ungefähr der richtigen Breite für meine gewünschte Schriftgröße.

Aber das ist eine persönliche Präferenz und wahrscheinlich nicht das, wonach Sie gesucht haben (da Sie möchten, dass Munition in die andere Richtung geht).

Was hinterfragen Sie nicht die Gründe für das Limit? Im Ernst, wenn niemand einen guten Grund dafür finden kann, haben Sie ein gutes Argument dafür, dass es aus Ihren Codierungsstandards entfernt wird.

paxdiablo
quelle
Ich bin mir ziemlich sicher, dass es aus der Zeit stammt, als die Bildschirme im Textmodus 80 Zeichen breit waren.
TraumaPony
1

Ich bin den ganzen Tag Seite an Seite und habe keinen verdammten 22-Zoll-Monitor. Ich weiß nicht, ob ich jemals werde. Dies ist natürlich für Nur-Schreib-Programmierer, die Pfeilcodierung und 300-Zeichen-Zeilen genießen, von geringem Interesse.

Constantin
quelle
1

Ja, denn selbst in der heutigen Zeit codieren einige von uns auf Terminals (ok, meistens Terminalemulatoren), auf denen auf dem Display nur 80 Zeichen angezeigt werden können. Zumindest für die Codierung, die ich mache, schätze ich die 80-Zeichen-Regel sehr.

CobolGuy
quelle
0

Ich denke immer noch, dass das Limit nicht auf den visuellen Teil beschränkt ist. Sicher, die Monitore und Auflösungen sind heutzutage groß genug, um noch mehr Zeichen in einer Zeile anzuzeigen, aber erhöht dies die Lesbarkeit?

Wenn das Limit wirklich durchgesetzt wird, ist es auch ein guter Grund, den Code zu überdenken und nicht alles in eine Zeile zu setzen. Das Gleiche gilt für Einrückungen. Wenn Sie zu viele Ebenen benötigen, muss Ihr Code überdacht werden.

nicht vorhanden
quelle
0

Das Brechen mit 80 Zeichen ist etwas, was Sie beim Codieren tun , nicht danach. Das gleiche gilt natürlich für Kommentare. Die meisten Editoren können Ihnen dabei helfen, festzustellen, wo das Limit von 80 Zeichen liegt.

(Dies mag ein wenig OT sein, aber in Eclipse gibt es eine Option, die den Code beim Speichern formatiert (nach den von Ihnen gewünschten Regeln). Dies ist zunächst etwas ausgeflippt, aber nach einer Weile beginnen Sie zu akzeptieren, dass der Die Formatierung liegt nicht mehr in Ihren Händen als der generierte Code.)

JesperE
quelle
0

Wenn wir eine davon hätten , würden wir diese Diskussion nicht führen! ;-);

Aber im Ernst, die Themen, die die Leute in ihren Antworten angesprochen haben, sind ziemlich legitim. Das Originalplakat sprach sich jedoch nicht gegen eine Begrenzung aus, nur dass 80 Spalten zu wenig sind.

Das Problem des Versendens von Codefragmenten per E-Mail hat einige Vorteile. Aber angesichts der bösen Dinge, die die meisten E-Mail-Clients mit vorformatiertem Text tun, denke ich, dass Zeilenumbruch nur eines Ihrer Probleme ist.

Beim Drucken finde ich normalerweise, dass 100 Zeichenzeilen sehr bequem auf eine gedruckte Seite passen.

Andrew Edgecombe
quelle
0

Ich versuche, meine Zeilen unter 80 Spalten zu halten. Der stärkste Grund ist, dass ich häufig meinen Code benutze grepund lessdurchsuche, wenn ich über die Befehlszeile arbeite. Ich mag es wirklich nicht, wie Terminals lange Quellleitungen unterbrechen (sie sind schließlich nicht für diesen Job gemacht). Ein weiterer Grund ist, dass ich finde, dass es besser aussieht, wenn alles in die Zeile passt und nicht vom Editor unterbrochen wird. Zum Beispiel mit Parametern von langen Funktionsaufrufen, die gut untereinander ausgerichtet sind, und ähnlichen Dingen.

Johannes Schaub - litb
quelle