Guten Morgen,
das Zitat aus dem Betreff stammt aus dem Buch "97 Things Every
Programmer Should Know" im Zusammenhang mit der maximalen Länge von
Funktionen. Mal abgesehen davon, dass ich das für unrealistisch halte:
woher kommt diese Zahl? Ich schätze mal es hat mit den alten
Stempelkarten zu tun, genau wie die "80-Spalten-Regel". Allerdings bin
ich zu jung um es wirklich zu wissen. :-P
Gruß
Dennis
"Mostly Unstructured Common Sense - completely and utterly useless
Von Dr. Gernot Starke am 5. Februar 2010
Format: Taschenbuch
Beware of this book. It contains a completely unstructured and useless
collection of opinions... not even
corrected or re-structured by the (quire famous) author/editor...
The whole book was compiled out of a public web discussion."
Ich bin kein Softwerker, aber eine Zeilenbegrenzung auf 24 Zeilen halte
ich für arg akademisch. Wir hatten hier im Forum auch mal die (nicht
ganz ernst gemeinte) Aussage von einem unser Software-Kenner, daß man
streng genommen jede Funktion nur ein oder 2 Teilfunktionen begrenzen
kann.
24 Bildschirmseiten ist sicher auch zuviel, die Wahrheit liegt wohl eher
dazwischen. Aus dem Bauch heraus würde ich sagen, daß meine Funktionen
bis max. 10 Bildschirmseiten lang sind, im Schnitt deutlich darunter,
eher 1-2.
Dennis S. schrieb:> woher kommt diese Zahl?
Die kommt daher, dass die "ersten" CP/M-Bildschirme 24 Zeilen bei 80
Zeichen hatten.
http://hc-ddr.hucki.net/wiki/doku.php/z9001:cpm:crt80
Und schon damals galt: "Der Fehler ist immer im derzeit nicht sichtbaren
Bereich!"
Wenn also eine Funktion auf 1 Bildschirm passte, war es weniger
wahrscheinlich, einen Fehler zu übersehen... ;-)
Die Lesbarkeit steigt drastisch und die Fehleranfälligkeit sinkt, wenn
man eine Funktion komplett ohne Scrollen anschauen kann.
Bei meinem PC sind das bei Notepad++ 48 Zeilen.
Lange Funktionen sind oft Copy&Paste-Monster, d.h. Wiederholungen von
fast identischen Codestücken. Da ist Fehlersuche Schwerstarbeit.
Das kommt halt immer drauf an, was man in den Funktionen macht.
Aber davon ausgehend, daß jedes Programm mindestens einen überflüssigen
Befehlt enthält und entfernt werden kann, ist das optimale Programm
genau keinen Befehl lang.
Mikro 7. schrieb:> Beim PC waren es dann eigentlich 25x80 (statt 24x80) Zeichen.>> https://en.wikipedia.org/wiki/IBM_Monochrome_Display_Adapter
Ja, aber die meisten Editoren haben dann doch etwas Platz für sich
selbst gebraucht, mit einer Menü/Statusleiste.
Und dann warens wieder 24 Zeilen. Oder sogar weniger, wenn man sich
"Turbo Pascal" und vergleichbares im PC-Textmodus ansieht, das je nach
Version vier oder sogar mehr Textzeilen für Menü, Statuszeile, Rahmen
etc. verbrauchte.
Jedes auch nur etwas weniger triviale Programm aber ist mit 24 Zeilen
kaum darstellbar, das gleiche gilt auch für einzelne Funktionen. Das war
auch damals schon so, und deswegen war jede Vergrößerung der
Bildschirmauflösung ein papiersparender Fortschritt.
Als ich mit 'nem 24-Zeilen-Terminal arbeiten musste, produzierte ich im
Monat gut und gerne einen über 10 cm dicken Papierstapel (Endlospapier),
um den Überblick zu haben.
Seit etlichen Jahren arbeite ich an einem Monitor, der etwas über 90
Textzeilen darstellen kann - der Papierstapel ist schon sehr, sehr lange
entfallen. Sourcecode ausdrucken? Geschichte.
Die 24 Zeilen stammen noch aus den frühen 70er Jahren, als die ersten
Computer-Terminals mit Bildschirm (Datensichtgeräte für Großcomputer)
aufkamen, Diese konnten meist 12 (z.B. Datapoint 2200, DEC VT50) oder 24
Zeilen á 80 Zeichen darstellen (z.B. IBM 3270, DEC VT52).
Diese 24 Zeilen wurden dann auch in die in der zweite Hälfte der 70er
Jahre auf den Markt kommenden Mikro-/Home-/Personalcomputer übernommen,
wobei dort die Zeilenlänge aus Kostengründen oft auf 40 Zeichen halbiert
wurde. Bekannte Geräte aus dieser Zeit sind der Apple-1, Apple II und
Commodore PET 2001. Lediglich der Tandy TRS-80 Model I fiel mit seinen
16 Zeilen á 64 Zeichen aus der Reihe.
Wie schon geschrieben wurde, haben einige Hersteller diese 24 Zeilen um
eine Statuszeile erweitert, was praktisch keinen Mehraufwand darstellte,
da in der für 80×24 Zeichen erforderlichen RAM-Größe von 2 KiB genauso
gut auch 80×25 Zeichen Platz haben.
Was die optimale Länge von Funktionen bzw. Unterprogrammen betrifft,
hängt diese stark von der verwendeten Programmiersprache ab. Natürlich
ist es schön, wenn ein Unterprogrammen komplett auf dem Bildschirm
dargestellt werden kann (der früher eben 24 Zeilen hoch war), aber kaum
ein Assemblerprogrammierer wird diese Grenze als praktikabel empfinden.
Auf der anderen Seite gibt es Sprachen wie Haskell, wo eine typische
Funktion weniger als 10 Zeilen (oft sogar nur eine einzige Zeile) lang
ist und eine 24-Zeilen-Funktion schon fast als Monster gilt.