Müssen Sie horizontal scrollen, um den Code weniger lesbar zu machen?


12

Na, geht das? Gilt es als schlechte Praxis?

IMO ist es weniger lesbar. Ich hasse es, nach rechts zu scrollen, dann wieder nach links, rechts, links und so weiter. Das macht das Codieren schmerzhafter und verwirrt mich manchmal.

Wenn ich zum Beispiel eine lange Zeichenfolge codiere, gehe ich wie folgt vor ...

bigLongSqlStatement = "select * from sometable st inner join anothertable at" +
"on st.id = at.id" +
"and so on..." +
"and so on..." +
"and so on..."

15
ja tut es. (und vergessen Sie nicht, die verschütteten Zeilen einzurücken)
Javier

2
Ich würde sagen, dass es das tut. Soweit ich gesehen habe, scheint es für Erfahrungs- programmierer üblich zu sein, horizontales Scrollen in der von Ihnen beschriebenen Weise zu vermeiden. Bis zu einem gewissen Grad gibt es jedoch persönliche Vorlieben in dieser Angelegenheit ...
Kenneth

1
Ich kann mit ein paar Tasten vertikal und innerhalb von Zeilen mit hoher Geschwindigkeit durch den Code navigieren. Das horizontale Scrollen ist im Vergleich lästig langsam.

Übermäßige Spalten machen alles weniger lesbar. Das wurde schon oft festgestellt.
David Thornley

2
Genau. Das einzige Problem ist, dass sich alle darauf einigen, wie breit Ihr Editor sein soll. Bei besonders breitem Code setze ich normalerweise nur den Zeilenumbruch, wenn ich eine Menge davon zum Durchlesen habe.
Karl Bielefeldt

Antworten:


19

Ja, in der Tat, sowohl im wörtlichen als auch im allgemeinen Sinne.

Ich mache gerne Side-by-Side-Code-Unterschiede, und zu breite Linien erschweren dies:

http://i.stack.imgur.com/fWVuz.jpg

Sprachen wie Scala mit Strings in dreifachen Anführungszeichen ermöglichen es Ihnen, einen String aus vielen Zeilen zu konstruieren, ohne dass Laufzeitaufwand, unansehnliche Anführungszeichen und Pluszeichen (wie in Ihrem Beispiel gezeigt) beim Zusammenfügen von Teilen eines Strings entstehen.


11

Ja, ich halte 80 Zeichen pro Zeile für sinnvoll und gebräuchlich.


6

Das ist eine sehr wichtige Frage für mich! Ich habe 7 Monate an einem 13-Zoll-Laptop mit Kollegen mit 24-Zoll-Desktop-Monitoren gearbeitet und dabei viel Zeit damit verbracht, die Zeilen zu verkürzen, um etwas Lesbares zu erhalten.

80 Spalten sind in vielen Fällen etwas klein (außer wenn Sie an einem Terminal mit der einzigen Option vi arbeiten;)), aber mehr als ~ 150 sind zu viel (siehe unten).

Das ist für die reine "Lesbarkeit" Frage.

Jetzt finde ich für den Teil 'gute Praxis' sehr oft, dass so lange Zeilen fehlerhaft sind, dh einen Teil, der in eine temporäre Variable extrahiert werden sollte oder der zum Beispiel dupliziert wird (ObjectiveC, allgemeines Snippet in der iPhone-Programmierung). :

CGPoint point = CGPointMake(someOtherView.frame.origin.x + someOtherView.frame.size.width, someOtherView.frame.origin.x + someOtherView.frame.size.height);

Bitte beachten Sie, dass dies bei der Arbeit mit dreidimensionalen Vektoren oder Matrizen noch schlimmer werden kann.

Umgeschriebenes Beispiel:

CGRect frame = someOtherView.frame;
CGPoint origin = frame.origin;
CGSize size = frame.size;
CGPoint point = CGPointMake(origin.x + size.width, origin.x + size.height);

Dies passt jetzt auf einen kleineren Bildschirm, ist einfacher mit einer IDE zu debuggen oder in die Standardausgabe zu schreiben und kann je nach den Kosten für den Methoden- / Eigenschaftsaufruf sogar schneller sein. Das ist natürlich etwas erzwungen, die meisten Beispiele aus der Praxis sind viel komplexer ...


4

Nicht immer.

Um nur eine alternative Ansicht hinzuzufügen: Wenn ich Code lese, kann ich oft den Kern der Codezeile abrufen, ohne die gesamte Zeile lesen zu müssen. Wenn ich den Methodennamen lesen kann, aber die Methodenparameter nicht auf dem Bildschirm erscheinen, bin ich normalerweise nicht zu aufgeregt, da ich anhand des Methodennamens allein erkennen kann, was die Absicht dieser Codezeile ist. Wenn ein paar Codezeilen auf dem Bildschirm erscheinen, ist es meiner Meinung nach für den kompakteren Code sinnvoll, gelegentlich (da ist ein wichtiges Wort) horizontal zu scrollen. Ich finde manchmal mehrzeiligen Code mit einer Anweisung ablenkend, da ich mental zusammensetzen muss, welcher Code zu welcher Anweisung gehört.

Häufig haben die horizontal überlaufenden Codezeilen ihre wichtigen Bits links (sichtbar) und die weniger wichtigen Bits rechts (außerhalb des Bildschirms). Für mich verbessert dies die Lesbarkeit, da ich den Code meistens nach unten scannen kann, wobei ich das sehe wichtige Bits in jeder Zeile im Gegensatz zu der Alternative, dass die weniger wichtigen Codebits aus einer zu langen Zeile den visuell wichtigen Platz auf der linken Seite der folgenden Zeile (n) einnehmen.

Abgesehen davon würde ich sicherlich nicht sehr oft horizontal scrollen wollen, aber ich finde dies in diesen Tagen mit Breitbildmonitoren weniger problematisch.


2
Ich wusste nicht, dass einige Programmbits wichtiger sind als andere. Ich werde versuchen, meine Produktivität auf diese Weise zu verbessern: nur wichtige Bits zu codieren.
Mouviciel

1
@mouviciel, Es ist nicht so, dass die linke Seite des Codes wichtiger ist, aber semantisch hat die linke Seite des Codes mehr Bedeutung für das Verständnis dessen, was die Codezeile tut als die rechte. Während Sie den Code scannen, lesen Sie häufig nur den Zeilenanfang, um zu verstehen, was er tut, bevor Sie zum nächsten übergehen.
Chris Knight

1
Argumente, die an eine Methode übergeben werden, haben für mich die gleiche Bedeutung wie der Methodenname. Wenn Sie diese Informationen belassen, können Sie mehr als nur erraten, was der Code bewirkt.
Mouviciel

1

Ja tut es.

Übrigens ein Tipp. Wenn Sie eine Sprache mit mehrzeiligen Zeichenfolgen verwenden (praktisch alle Skriptsprachen haben diese Zeichenfolgen) und SQL mit langen Zeilen enthalten, ist es sehr hilfreich, wenn Sie die SQL mit konsistenten Formatierungsregeln für SQL in eine mehrzeilige Zeichenfolge einfügen. Informationen zum verwendeten Formatierungsstil finden Sie unter http://bentilly.blogspot.com/2011/02/sql-formatting-style.html .


1

Nein, das tut es nicht.

Ich habe einen Redakteur. Es hat nicht nur Zeilenumbruch, sondern auch Zeilenumbruch-Einrückungen , die (wenn der Bildschirm 100 Zeichen breit ist) dazu führen würden

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

erscheinen als

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut 
    labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco 
    laboris nisi ut aliquip ex ea commodo consequat.

oder mit einer beliebigen Einrückungsstufe, die als Standard für die aktuelle Sprache festgelegt ist.

Zeilen, die breiter als mein Bildschirm sind, machen Code nie weniger lesbar als manuell eingerückter Code.

edit: ooooh, ich wusste, dass diese Antwort unbeliebt sein würde :)


2
Schön für dich. Aber was würden Sie tun, wenn Sie zu einem Editor wechseln müssten, der über diese Funktion nicht verfügt?

1
@dunsmoreb: Warum sollten Sie zu einem Editor wechseln, der so veraltet ist, dass er nicht einmal Zeilenumbruch unterstützt? Editor)?
Arseni Mourzenko

MainMa, ich beziehe mich auf Ihre Zeilenumbruch-Einrückung.

@ Dunsmoreb: um fair zu sein, auch nur Zeilenumbruch ist genug gut, wenn lange Schlangen ungewöhnlich sind
Amara

7
Nur weil Ihr Editor eine Zeile umbrechen kann, bedeutet dies nicht, dass dies der logischste Ort für die Lesbarkeit ist.
Craige

0

Sicher ist es. Es gibt einen Grund, warum Zeitungen und Zeitschriften Spalten verwenden. Die Lesbarkeit ist ein wichtiger Faktor. Beim Lesen scannen unsere Augen mit relativ geringen seitlichen Bewegungen nach unten. Der Effekt besteht darin, dass unsere Augen das, was wir lesen, schnell scannen können.

Selbst wenn sie auf dem Bildschirm sichtbar sind, zwingen breite Spalten unsere Augen, schnell hin und her zu scannen. Beim Zurückscannen verstehen wir eigentlich nichts. Dies wird das Lesen und Verstehen erheblich verlangsamen. Der Effekt ist ähnlich wie bei alten mechanischen Druckern. Diese erforderten häufig das Einfügen mehrerer Nullzeichen nach einem Wagenrücklauf, damit der Wagen oder der Druckkopf Zeit für die Neupositionierung für die nächste Zeile hat.

Darüber hinaus erfolgt die vertikale Anordnung normalerweise so, dass die Gruppierung der Inhalte in der Zeile verdeutlicht wird. Dies sollte normalerweise nur für zusammengesetzte logische Bedingungen gelten. Lange Formeln lassen sich besser als eine Reihe von Anweisungen strukturieren. (Der Optimierer behebt zusätzlichen Aufwand, und einige Optimierer geben bei komplexen Formeln auf oder arbeiten schlecht.)

Bezeichner mit mehreren Punkten, die große Linien erfordern, geben Codiertechniken an, die korrigiert werden sollten.


0

Mäuse-Räder machen es einfach, vertikal schnell zu scrollen ... horizontal zu scrollen ist im Vergleich zu teuer.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.