Strukturiertes Programmieren
Programmcode mit definierten Funktionen und Prozeduren und ohne Sprünge zu bestimmten Zeilennummern ist heute so normal, dass man sich kaum etwas anderes vorstellen kann. Richtigen "Spaghetti-
Sprünge
Zu weit geht mir die Forderung, eine Schleife oder Funktion niemals mit einem Sprungbefehl (break
, exit
, return
oder dgl.) verlassen zu dürfen. Der Sprungbefehl erscheint mir in vielen Fällen übersichtlicher und vermeidet Redundanz durch die Wiederholung von Bedingungen.
Ausdrücke
Hinzufügen würde ich die Forderung, dass auch umfangreiche Ausdrücke strukturiert werden sollten. Ich staune selbst immer wieder, wie viel einfacher der Code ist, nachdem ich einen großen Ausdruck in kleinere Zwischenergebnisse aufgeteilt habe.
Vgl. z. B.
str = replace(str, urlRel, replace(Matches1(0).SubMatches(0), "|", "_") & ".htm")
und
id = Matches1(0).SubMatches(0)
id = replace(id, "|", "_")
urlLocal = id & ".htm"
str = replace(str, urlRel, urlLocal)
Verzweigungen
Nicht wirklich "verboten", aber häufig kritisiert werden umfangreiche Ansammlungen von Verzweigungen (If
-
Verzweigungen sind mir auch lieber als Schleifen, denn meine Erfahrung zeigt, dass man Schleifen schwerer durchdenken kann. Vgl. folgende Code-
1. Mit Verzweigung:
For i = 1 to UBound(arr)
If arr(i)=arr(i – 1) Then
Wscript.echo "Duplikat gefunden: " & arr(i)
End If
Next
2. Nur mit Schleifen:
i = 1
While i<UBound(arr)
While i<UBound(arr) and arr(i)<>arr(i – 1)
i = i + 1
WEnd
While i<UBound(arr) and arr(i)=arr(i – 1)
Wscript.echo "Duplikat gefunden: " & arr(i)
i = i + 1
WEnd
WEnd