Einzelnen Beitrag anzeigen

Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: Max Zeilen in einer Procedure

  Alt 15. Okt 2021, 07:49
Solange die Prozedur/Funktion/Methode trivial ist, ist die Anzahl der Zeilen relativ uninteressant. Ich habe auch welche, die mal 200-300 Zeilen haben. Meistens sind das Initialisierungen, einlesen von Einstellungen und geringfügige Aufbereitung (z.B. Backslash am Ende von Pfadangaben sicherstellen). Meistens unterteile ich durch Leerzeilen und Kommentare noch einzelne Blöcke (Regions wären auch denkbar, wie Himitsu schon schrieb). Natürlich könnte man diese Blöcke in weitere Prozeduren auslagern, aber es erhöht die Lesbarkeit nicht wirklich und man muss bei der Fehlersuche auch noch durch die Prozeduren springen.
Würde ich die Leerzeilen, Kommentare und nicht notwendiges "begin...end" weglassen, könnte ich wahrscheinlich noch 10-20% sparen. Das wurden den Source aber weniger lesbar machen.

Meine übliche Vorgehensweise:
Wenn eine unfamgreiche Prozedur fertig ist, sehe ich mir die nochmal an und überlege, ob ich die in einem Jahr noch ohne Probleme sofort durchschaue. Ist das nicht der Fall, gibt es ein Refactoring. Kommt aber selten vor, da ich in der Regel sofort merke, wenn etwas komplizierter wird und ausgelagert werden muss. Das passiert zum Beispiel, wenn ich für mich selbst Kommentare in den Source schreiben muss, damit ich weiß, was da gemacht wird. Das ist auch relativ unbahängig von der Anzahl der Zeilen.

Aber mal so nebenbei: Es gibt wirklich schlimmeres alles lange Prozeduren. Ich muss immer wieder alte Sourcen von einem Vorgänger bearbeiten. Lange Prozeduren mit globalen, nicht sprechenden Variablen, with-Elementen und ohne Kommentare (Kommentare gibt es nur am Anfang der Prozedur, damit man weiß, dass z.B. die Prozedur "Initalisierung" die Variablen initialisiert). Wenn dort Fehler drin sind oder Anpassung erforderlich werden, kann ich erstmal 1-2 Tage opfern, um die Sourcen überhaupt zu verstehen. Dass der die Form-Variablen in der Klasse verwendet, hat ist dann auch immer wieder spannend. Und wozu soll man Fehlerbehandlung machen oder try...except/finally verwenden. Das wird völlig überbewertet.
Sorry, musste ich gerade mal loswerden
Peter
  Mit Zitat antworten Zitat