Hallo,
Wenn man die Wirkung kennt natürlich. Das ist Voraussetzung.
Es ist wäre Unsinn, über die Anforderungen an »lesbaren Code« zu debattieren unter der Voraussetzung, dass der Leser bereits weiß, was der Code macht. Wer den Code bereits versteht, muss nicht noch Verständnis erwerben.
Wir reden wohl aneinander vorbei. Mit lesbar mein(t)e ich wirklich für *mich* und für's *Auge* und für's *schnelle* Erkennen, worum es geht, wenn man eine Programmiersprache eigentlich "kann".
Erst kürzlich bin ich wieder auf leicht verständlichen und durchaus lesbaren Code für jedermann gestoßen, der mich aber sehr genervt hat.
Der ging, in JS übersetzt, so:
var isSuccess;
if (bliBlaBlubb())
{
isSuccess = true;
}
else
{
isSuccess = false;
}
return isSuccess;
OMG, was soll denn das? Zehn Zeilen Code, wo doch eine einzige kurze Zeile absolut ausreichen würde und das Auge und der Verstand nicht unnötig beschäftigt werden müssten:
return bliBlaBlubb();
Es war nicht mal in JS, sondern in einer streng typsicheren Sprache, wobei absolut klar ist, dass return
nur einen booleschen Wert zurückgeben kann, sonst meckert schon die Entwicklungumgebung oder, falls man das übersieht, spätestens der Compiler. Daher besteht auch keine Gefahr, dass irgendwie unklar wäre, was bliBlaBlubb() für Werte annimmt.
Man stelle sich bildlichdie Scrollerei am Bildschirm vor angesichts von hunderten oder gar tausenden Zeilen Code, die so aussehen wie oben, während man versucht, eine komplizierte Programmlogik zu verstehen.
Das meine ich, wenn ich sage, der Code muss "lesbar" sein, ganz pragmatisch.
Number(x)
nimmt mir im Vergleich zu (+x)
einfach zuviel Raum ein, dafür dass es eine relativ unbedeute Funktion ist, wenn es darum geht, größere Zusammenhänge zu erfassen. Das Auge wird durch etwas wie
Number(fastnix) + Number(wichtig) * Number(naja) + Number(hammer) - Number(bledzin) einfach zu sehr mit Nebensächlichem beschäftigt.
Dagegen ist (+fastnix) + (+wichtig) * (+naja) + (+hammer) - (+bledzin) einfach viel lesbarerer, wie ich meine.
Wenn jemand aus dem Team darüber stolpert und fragt, was das soll, dann erkläre ich's ihm halt, und gut.
Schreibt jemand im Team Code mit Stolperfallen, bekommt er von mir die Hammelbeine langgezogen. ;)
Stolperfallen sind gerade zum Dazulernen hervorragend geeignet. Wenn man über etwas stolpert, das man nicht auf Anhieb begreift, dann ist man gezwungen, der Sache auf den Grund zu gehen und lernt so sehr effektiv und nachhaltig Zusammenhänge, die, wenn man sie einfach doziert bekäme, schon am nächsten Tag wieder vergessen wären...
Ich bin auch noch dabei, JavaScript zu lernen. Ich lerne jeden Tag dazu. Ich schreibe seit 10 Jahren JavaScript. Ich vergesse jeden Tag Teile und frische andere Teile auf.
Klar, so geht's mir natürlich auch: Dumm geboren, nichts dazugelernt, Hälfte vergessen ;)
Gruß, Don P