Einfache Refactorings – Teil 5

Um automatisierte Tests ergänzen zu können, ist es manchmal sinnvoll, einen Konstruktorparameter einzuführen, über den die Abhängigkeit von außen reingereicht werden kann. Der Beitrag zeigt, wie dies am Beispiel von DateTime.Now mit einer simplen Lambda Expression möglich ist.

Desweiteren befasst sich der Beitrag mit Abhängigkeiten. Reduzieren Sie Abhängigkeiten durch das Extrahieren eines Interface. Auf diese Weise kann häufig die Testbarkeit hergestellt oder verbessert werden.

Einfache Refactorings – Teil 4

Häufig kann der Code mit einem simplen Extract Method Refactoring verständlicher gemacht werden. Die zusätzliche Methode ermöglicht es dem Leser, allein anhand des Methodennamens zu verstehen, was der Code macht. Eine gute Ergänzung ist häufig das Introduce Parameter Refactoring. Dadurch werden alle Eingaben einer Methode in der Parameterliste sichtbar, was ebenfalls die Verständlichkeit erhöht.

Einen anderen Fokus hat das Move to Another Type Refactoring. Durch dieses Refactoring werden Aspekte getrennt, dadurch dass ein Teil der Aspekte in eine andere Klasse verschoben wird. Automatisiert mit Toolunterstützung durchgeführt ist das Risiko gering, die Funktionalität zu zerstören.

Einfache Refactorings – Teil 3

Ein weiteres Anwendungsgebiet für das Extract Method Refactoring sind Bedingungen von Verzweigungen. Die Bedingung einer if-Anweisung erschließt sich beim Lesen manchmal erst, wenn wir den Inhalt der Verzweigung lesen. Durch ein Extract Method Refactoring kann die Bedingung, mit einem Namen versehen, ausgelagert werden. Neben der Verbesserung der Lesbarkeit kann dies auch eine bedeuten, eine DRY Verletzung zu beheben.

Weiters befasst sich der Beitrag damit, die Eingaben einer Methode explizit sichtbar zu machen. Dazu werden die benötigten Werte mittels Introduce Parameter Refactoring in die Parameterleiste gezogen.

Einfache Refactorings – Teil 2

Nicht selten ist die Parameterliste einer Method über die Jahre etwas zu lang geworden. Manchmal stehen die Parameter in einem sinnvollen Zusammenhang zueinander, so dass man sie zu einer Klasse zusammenfassen kann. Das ist nicht immer der Fall, vor allem, wenn eine Methode für mehr als einen Aspekt zuständig ist. In solchen Fällen werden häufig einzelne Parameter oder Gruppen von Parametern für die unterschiedlichen Aspekte der Methode benötigt. In dem Fall kann es helfen, zunächst die Aspekte zu trennen.

Der Beitrag befasst sich mit dem Extract Class from Parameters Refactoring, mit dem die Parameter einer Methode zu einer neuen Klasse zusammengefasst werden. Sollte dies schwer fallen, weil in der Methode Aspekte vermischt sind, hilft oft ein Extract Method Refactoring dabei, Aspekte aus der Methode in weitere Methoden auszulagern.

Einfache Refactorings – Teil 1

In dieser Reihe von Blogbeiträgen stelle ich Ihnen sogenannte Einfache Refactorings vor. Im Gegensatz zu Komplexen Refactorings sind diese vollständig toolgestützt durchführbar. Das bedeutet, dass Sie die Veränderungen am Quellcode automatisiert mithilfe einer IDE, z.B. Microsoft Visual Studio oder JetBrains Rider, ausführen. Vielleicht setzen Sie auch ein zusätzliches Refactoring Tool ein wie JetBrains ReSharper. Durch Einsatz eines solchen Werkzeugs bleibt das Verhalten der Anwendung beim Refactoring erhalten. Solange Sie die Refactorings konsequent ausschließlich mit solchen Werkzeugen ausführen und nicht per Hand eingreifen, ist die Wahrscheinlichkeit sehr hoch, dass sich der Code hinterher genauso verhält wie vor dem Refactoring.

Der erste Beitrag der Serie beschreibt ferner, wie Sie mit dem Rename Refactoring sowie dem Introduce Variable Refactoring die Lesbarkeit Ihres Codes erhöhen.