m.fuchs hat geschrieben:Genau. Und zwar um eine Aufgabe zu erfüllen. Prozeduren die länger als zwanzig Zeilen sind, sind im Allgemeinen ein Hinweis darauf dass die Prozedur mehr als eine Aufgabe erfüllt.
Manchmal ja, oft genug ist das aber nicht der Fall.
m.fuchs hat geschrieben:Tja, dieser pauschale Unsinn wird durchaus in der Praxis so durchgeführt. Wenn bei uns ein Mitarbeiter Quellcode eincheckt der längere Prozeduren enthält, dann markiert der CI-Server das Projekt als instabil. Und dann wird auch verkleinert.
Dann hab ich wohl ein verdammtes Glück, dass ich nicht in eurer Firma arbeite...
m.fuchs hat geschrieben:Häufig ist beides das Gleiche, siehe oben.
Ja. Und häufig nicht.
m.fuchs hat geschrieben:Das kann passieren, ist aber ein seltener Fall. Und dann schaut man sich das Problem näher an. Nicht selten findet man eine bessere Lösung.
Selten oder nicht, ist nicht das Thema. Und ein case-Statement ist kein "Problem", für das man eine "bessere Lösung" suchen müsste. Wie umfangreich eine Prozedur ist, hängt von der Aufgabe (nicht den Aufgaben) ab, die sie erfüllt. Und wenn die einzige "Verbesserung" eine Aufspaltung zum Zweck der Reduktion der Zeilen der Prozedur ist, dann ist das meines Erachtens keine Verbesserung.
m.fuchs hat geschrieben:kurze Prozedure => weniger Probleme bei der Lesbarkeit.
Das stimmt so pauschal nicht. Weil das, was tatsächlich passiert, muss man sich dann aus vielen Teilprocedures erst wieder mühsam zusammen klauben. Oft ist die Auslagerung von Code in (kleinere) Unterprogramme sinnvoll, oft aber auch nicht. Die Compiler, die ich bisher kennen gelernt habe , sind für den Zugriff auf lokale und auf globale Variable optimiert, während der Zugriff auf lokale Variable übergeordneter Prozeduren mit einem relativ großen Overhead verbunden ist. Schon aus dem Grund bin ich mit der Verwendung von in andere Prozeduren eingebetteten Prozeduren eher zurückhaltend.
Ich habe jetzt noch kein Argument gelesen, das gegen die von mir vorgeschlagenen Erweiterungen der Pascal Syntax sprechen würde. Dass es auch jetzt schon workarounds gibt, mit denen MANCHMAL mehr oder weniger umständlich das gleiche erreicht werden kann, kann man doch nicht ernsthaft als Gegenargument bezeichnen.
Es gibt in Pascal ein with statement. Das hat sich der Herr Wirth ja nicht einfallen lassen, weil er blöd ist. Die Art, wie das Konzept derzeit in Pascal umgesetzt ist, führt zu Problemen, deretwegen man das with Statement so, wie es ist, besser nicht verwenden sollte. Aber statt es bei dem Zustand zu belassen und den Leuten zu sagen: "das Feature gibt es, aber verwendet es bitte nicht", wäre es doch besser, durch eine geringfügige Änderung der Syntax die Verwendung dieses Sprachfeatures auf sichere Art zu ermöglichen. Defaultmäßig sollten dann nur mehr das sichere with erlaubt sein, per Compilerschalter (der auch durch mode delphi defaultmäßig aktiviert werden müsste) die unsichere Version erlaubt werden.