14 Nov 2007 

Kurze Methoden

… waren das Credo über viele Jahre. Methoden die ausgedruckt mehr als zwei A4-Seiten ergäben, wären zu lang. Oder: eine Aufgabe ist eine Methode und nur ja nicht mehrere Aufgaben in einer Methode abhandeln. Ich habe diese Meinungen auch vertreten. Das hat sich geändert nach der Version 6.8. Mit dem neuen Methoden-Editor der V2003 fiel das 32K-Limit für Methoden weg. Wie eng 32K sind, habe ich in diesem Jahr noch einmal erlebt. Ich hatte mich bereits vollkommen davon verabschiedet.

Seit der V2003 können wir die Methoden anders konzipieren und seit der V2004.2 helfen uns Pointer auf lokale Variablen gewaltig dabei. Es macht inzwischen Sinn, was zusammengehört in einer Methode zu halten und vor rekursivem Aufruf nicht mehr zurückzuschrecken. Zwei Themen über dieses Verfahren habe ich bereits auf die WebSite gestellt. Es sind Eine Code-Archiv Perle und Alles zusammenhalten ….

Wie immer gilt eine neue Regel wie diese, solange sie moderat eingesetzt wird. Übertreibungen führen zu neuen Grenzen, Monster-Methoden werden unhandlich.

compilerWieviele Zeilen in einer Methode sind des Guten zu viel? Um das rauszufinden, gibt es ein einfaches Verfahren. Der Compiler erzeugt automatisch mehrere Methoden. Die Methode Compiler_Methods ist in der Regel die mit den meisten Zeilen.

In einer meiner großen Datenbanken, fand ich dort mehr als 10.000 Zeilen. Das steht in direktem Zusammenhang zur Anzahl der Methoden (2.200) und der Anzahl der Parameter (im Durchschnitt 3). Mich mit Maus, Cursor-Tasten und Rollbalken in der Compiler_Methods bewegend, bemerkte ich keinen Performance-Verlust. 10.000 Zeilen sind für den 4D-Methodeneditor noch kein Problem. Für mich schon, ab 2.000 Zeilen leidet die Übersicht.

Zeilen CodeIch habe 4Dtoday vorgeschlagen, diese Frage How many lines does your largest "Compiler_" method have? an die Entwickler zu stellen. Das ist dabei herausgekommen:

86 Entwickler habe geantwortet. Immerhin 4 davon haben eine Compiler_Methods mit mehr als 32.000 Zeilen. 4D druckte die Methode auf 600 A4-Seiten, selbst beidseitig bedruckt wird das ein dickes Buch.

a4seiteFür mich ist beruhigend, daß 40% der Antwortenden Compiler_Methods mit mehr als 5.000 Zeilen haben. Ich kann also ohne Sorge weiterhin vielzeilige Methoden schreiben, die alles zusammenhalten und für mich handhabbar bleiben.

Was ich inzwischen einzuhalten versuche:
wenn nur die oberste Ebene aufgeklappt ist, soll die Methode auf eine A4-Seite passen. Die nebenstehende 1500-Zeilen Methode paßt.
Vor einem 30"-er arbeitend, können Sie eine halbe Seite zugeben.

Antwort: ich weiß nicht, wieviele Zeilen Code zu viel sein werden. Aber ich habe noch viel Reserve.

Wünschen würde ich mir und ich weiß, ich bin nicht alleine: eine Methode würde sich merken, welche Zeilen zugeklappt sind und welche nicht. So wie wir das von Outline-Programmen kennen. Ich glaube dieser Wunsch hat die Ausdauer wie der Wunsch nach Pointern auf lokale Variablen.

4D Themen: Berichte in Arbeit