Programmierstil?
-
Okay, das sind wirklich gute Argumente, überzeugt.
Ich bin nur stur, wenn man mich überreden will und dabei noch beleidigend ist.
-
Eisflamme schrieb:
... aber das Codebild ist nachher besser zu lesen und das ist es mir wert.
Das ist interessant, denn offensichtlich hast du es dir beigebracht, den Text von oben nach unten zu lesen... was ja nicht schlimm ist. Du musst bedenken, dass die meisten Menschen den Text von links nach rechts lesen. Es wird jedem von uns seit der Grundschule beigebracht und im Laufe der folgenden Schul- und Lebensjahre machen wir nichts anderes als von links nach rechts zu lesen, sei es in unserer Freizeit, unter Stress oder wie auch immer. D.h. jeder, oder zumindest die meisten, die deinen Quellcode verstehen möchten, werden bei jeder Zeile versuchen, diese von links nach rechts zu lesen, ob sie es wollen oder nicht, und zusätzlich noch bei jedem Wort über die großen Abstände stolpern... denn es kommen noch die "biologischen Limitierungen" (nennt man es so
) hinzu, d.h. das menschliche Auge erfasst beim Lesen ganze Wörter und "braucht" kurze Abstände, Leerzeichen, um die nächsten Wörter zu erfassen. Das bedeutet u.a., dass so was hier:
for(i=0;i<N;++i)
genauso "schlimm" ist wie das hier
for ( i = 0; i < N; ++i )
Im ersten Fall erfasst das Auge bei den meisten Lesern ganze Zeile, diese enthält zu viel Information, um sie auf Anhieb zu verstehen, man muss genauer hinschauen, was mitten drin steht, das ist "anstrengend". Im zweiten Fall erfasst das Auge nur einzelne Zeichen, "for", "(", "i" usw. weil große Abstände, einzelne Zeichen allein enthalten wenig Information, man muss sich wieder anstrengen und aus einzelnen Zeichen etwas zusammensetzen.
-
Das ist ein sehr schlechtes Argument.
Wer in dem oben geposteten Code eine Methode sucht, indem er alle Zeilen von links nach rechts durchgeht, der ist ein Idiot.
-
Ich "lese" Code, wenn er ausreichend einfach ist, weder von links nach rechts noch von oben nach unten, sonder eher in Blöcken.
Wenn man es lange genug macht (programmieren), kommt diese Fähigkeit irgendwann (*).Genauso wie, wenn man viel liest, man "quer" über Seiten drüberlesen kann, wenn man nur eine bestimmte Stelle sucht, oder nur rausbekommen will ob ein bestimmtes Thema in dem Text vorkommt.
Natürlich ist diese Methode nicht 100% sicher, man kann dabei auch mal was übersehen. In den meisten Fällen findet man aber was man sucht, und wenn nicht, dann muss man halt nochmal drübergehen, und beim 2. oder 3. mal dann wirklich alles "lesen" statt nur "drüberzuhuschen".
Und bei dieser Art zu "lesen" stört es sogar, wenn alles "hübsch" eingerückt ist. Zumindest bei mir. Hängt vermutlich auch davon ab welche Einrückungsart man gewöhnt ist. Der überwiegende grossteil von Code den ich lese (auch fremder Code, der nicht bei uns im Haus entstanden ist), ist allerdings "normal" eingerückt und nicht "aligned".
*:
Nicht bei allen wie ich festgestellt habe. Aber das ist so wie es auch nicht alle checken dass mit Shift+Cursortasten markieren und mit Ctrl+C - Ctrl+V kopieren schneller ist als mit der Maus zu markieren und dann übers Edit Menu erst Copy und dann Paste auszuwählen (auch mit der Maus, und die Maus dabei noch mit zwei Fingern schieben und vor jedem Klick absetzen und extra langsam Klicken damit man nicht "verreisst"). Hab ich auch Programmierer gesehen die das nach 10+ Jahren im Job immer noch so gemacht haben.
(Ctrl+Ins - Shift+Ins ist auch OK für Copy-Paste, geht mir nur darum dass mit Tastatur schneller ist als mit Maus)----
Was
for(int i=0;i<10;i++)
vs.for (int i = 0; i < 10; i++)
angeht hab' ich mir letzteres angewöhnt, weil ich es leichter zu lesen finde. Space nach Keywords (if, for, while, switch etc.) und zwischen binären Operatoren. Kein Space vor und nach Klammern (ausser eben vor Klammern die auf ein Keyword folgen). etc.
"Objektive" Argumente dafür kann ich keine anführen, ausser dass es sich - ich habe zumindest den Eindruck - als quasi-Standard durchgesetzt hat. Und ich persönlich (aber das ist ja nicht objektiv) es leichter zu lesen finde.
-
So etwas wie der ganz unten stehende Code (siehe Link) ist für mich der absolute Horror zu lesen. Das Witzige daran ist, dass der Autor diesen Stil sogar im Tutorial verwendet.
-
[Rewind] schrieb:
So etwas wie der ganz unten stehende Code (siehe Link) ist für mich der absolute Horror zu lesen. Das Witzige daran ist, dass der Autor diesen Stil sogar im Tutorial verwendet.
Was zum? Schrecklich
-
Eisflamme schrieb:
Das ist ein sehr schlechtes Argument.
Wer in dem oben geposteten Code eine Methode sucht, indem er alle Zeilen von links nach rechts durchgeht, der ist ein Idiot.
Die Mehrheit der Leser wird es wohl so versuchen...
-
hustbaer schrieb:
Ich "lese" Code, wenn er ausreichend einfach ist, weder von links nach rechts noch von oben nach unten, sonder eher in Blöcken.
Wenn man es lange genug macht (programmieren), kommt diese Fähigkeit irgendwann (*). ...Es gibt verschiedenste Techniken, es soll sogar Leute geben, die die erste Zeile von links nach rechts lesen und die zweite gleich von rechts nach links. Damit soll die Zeit gespart werden, die die Augen brauchen, um vom Ende der ersten Zeile auf den Anfang der zweiten zu schauen.
Meine Einstellung ist so, dass ich von anderen Entwicklern keine solche oder ähnliche Fähigkeiten erwarte und schreibe und formatiere den Quelltext so, dass er ohne größere Anstrengung von link nach rechts zu lesen ist. Dieses "Schreiben" und "Formatieren" ist vielleicht falsch ausgedrückt, denn vieles wird von meinem Editor (gvim) quasi automatisch erledigt... das geht soweit, dass ich z.B. die "Copy-Paste"-Funktionalität der anderen Editoren als zu primitiv empfinde, weil gvim mehrere benannte Zwischenablagen (sog. Register) bietet, man kann verschiedenste Textausschnitte in diese Register kopieren und dann den Inhalt dieser Register in beliebiger Reihenfolge einfügen. Das soll jetzt aber nicht die Leute verunsichern, die gerne mit der Maus "copypasten"
-
abc.w schrieb:
Eisflamme schrieb:
Das ist ein sehr schlechtes Argument.
Wer in dem oben geposteten Code eine Methode sucht, indem er alle Zeilen von links nach rechts durchgeht, der ist ein Idiot.
Die Mehrheit der Leser wird es wohl so versuchen...
Wenn er nach Methodennamen sucht von links nach rechts? Aber links und rechts steht der Methodenname nicht, der steht in der Mitte, also geht man doch nur von oben nach unten. Das ergibt für mich keinen Sinn.
Nicht, dass ihr mich falsch versteht: Ich bin bereits überzeugt und gewöhne mir diese Formatierung jetzt wieder ab (wenn ich in einigen 100 Jahren wieder Mal was programmiere). Aber in meinem oben geposteten Stil Methodennamen mit "links nach rechts" lesen zu durchforsten, ist schon wenig intelligent.
-
Eisflamme schrieb:
Wenn er nach Methodennamen sucht von links nach rechts?
Wenn ich nach Methodennamen suche dann guck ich auch erst gar nicht in den Quelltext sondern benutz die Suchfunktionen und Ansichten meiner IDE ...