Hallo.
ein Kollege liebt es seine IF Statements -auch die der aller
einfachsten Art so zu formulieren:
Das ist auch mir sympathischer hinsichtlich der systematischen Vorgehensweise. Begründung : In einer Umgebung, in der üblicherweise nach dem Kaskadenmodell entwickelt wird, weiß man (die Lebensdauer von Programmen kann die des Programmierers wesentlich übersteigen!) meist nur für einen begrenzten Zeitraum, wie die Bedingung oder auch das Errorhandling später einmal aussehen wird. Wenn der If-Zweig Deines Kollegen auch nur den kleinsten Inhalt bekommt, ist diese Variante Deiner an Übersichtlichkeitt überlegen.
ich aber bin ein freund der einfachen zeilen und übersichtlichkeit:
Beispiel in COBOL (hoffentlich habe ich die syntax noch drauf!)
IF sys030-status = status-ok.
PERFORM ALLESKLAR.
ELSE.
PERFORM ERROR030.
END-IF.
Das ist selbsterklärend und kann auch in 10 Jahren noch gewartet werden.
Nach Deiner Philosophie :
IF sys030 status-ok.
PERFORM ERROR030.
END-IF.
Das wirft mehrere Fragen für den Wartungsprogrammierer auf : Wie sieht der Ausgang von „ERROR030“ aus? Hält das Programm an, ist alles in Ordnung; springt es zurück, wird mit einem undefinierten Error-Status (status-ok war fehlerhaft; die Error-Routine dafür ist aber schon abgearbeitet!) weitergearbeitet. Entweder verändert man den Error-Status an dieser Stelle hartcodiert (was ganz schlechter Stil wäre), oder aber das Status-Flag ist an dieser Stelle wertlos (was ganz schlechter Stil wäre).
Insofern ist die Variante
IF sys030-status = status-ok.
REM der macht gar nix
ELSE.
PERFORM ERROR030.
END-IF.
ein wenig aufwendiger, aber sinnvoller. Die Performance wird dadurch, dass der ELSE-Zweig tatsächlich die Ausnahme darstellt, nicht wesentlich beeinträchtigt (sofern wir mal als gegeben annehmen, dass der Normalfall die Fehlerfreiheit ist!). Dieses Segment kann auch dann, wenn sich die Rahmenbedingungen ändern, unangetastet bleiben - die Intelligenz steckt im jeweiligen „OK“- oder „NICHTOK“- Paragraphen.
Ich würde jedenfalls das Programm Deines Kollegen als wesentlich wartungsfreundlicher einstufen …
Gruß Eillicht zu Vensre