GRUNDLAGEN

Refactoring: Code optimieren - Teil 3

Temporäre Variable zerlegen

Wenn man innerhalb einer Routine mehrere Male das Ergebnis einer Operation einer Variable eines bestimmten Datentyps zuordnet, braucht man dazu theoretisch nur eine einzige Variable zu verwenden.


Dim strTemp As String

strTemp = DLookup(…)

strTemp = GetFirstName(…)

strTemp = …

Allerdings leidet die Verständlichkeit des Codes darunter, und die Gefahr unerwarteter Ergebnisse besteht damit auch. Ersteres resultiert daraus, dass die Variable keine konkrete Aussage über deren Inhalt erlaubt. Wie sollte das auch möglich sein, wenn ein und dieselbe Variable völlig verschiedene Werte enthalten soll? Das zweite Problem entsteht beispielsweise, wenn Sie der Variablen zwischendurch nur unter einer bestimmten Bedingung einen neuen Wert zuweisen, diese nicht zutrifft und die Routine die Variable im Folgenden mit einem Wert weiterverwendet, der bereits lange vorher in einem anderen Zusammenhang gesetzt wurde.

Das Refactoring sieht so aus: Deklarieren Sie für jeden unterschiedlichen Zweck der Variablen eine eigene Variable, die einen auf den Inhalt bezogenen sinnvollen Namen aufweist. Ersetzen Sie dann die zuvor verwendete temporäre Variable durch die neuen Variablen.

Natürlich gibt es Ausnahmen: Manchen Variablen werden innerhalb einer Schleife ebenfalls mehrfach unterschiedliche Werte zugewiesen. In dem Fall ist natürlich kein Refactoring erforderlich – es sei denn, Sie verwenden die Variable vorher oder nachher noch für einen anderen Zweck.