Refactoring für Delphi, Java und PHP
Mit dem Alter sammelt der Mensch nicht nur positive Erfahrungen, sondern öfters auch schlechte Gewohnheiten und verschiedene Krankheiten.
Dasselbe passiert früher oder später mit einem Software-System. Wann merkt man die ersten Falten? Wenn es für den Entwickler schwer wird, den bestehenden Code zu warten und funktional zu erweitern. Und neue Anforderungen ziehen sich wie Kaugummi in die Länge.
Oder es wird ein Fehler an einer Stelle behoben – und tritt an anderer Stelle noch immer auf. Hier ist das Unwort “Code-Redundanz”. Wenn fehlerhafter Code in einer frühen Phase der Entwicklung einfach in einen anderen Anwendungsteil kopiert wurde, dann suchen Sie den Fehler später eben zweimal. Oder noch öfter.
Oft hilft dann nur intensives Software Refactoring. Bei Refactoring handelt es sich um die Verbesserung von Quellcode ohne Veränderung des Verhaltens der Software. Ziel ist, die Lesbarkeit zu verbessern und damit den Aufwand für Wartung und Erweiterung zukünftig zu verbessern.
Häufige Probleme in gewachsener Software
- Die Struktur des Quelltextes ist aufgrund von unterschiedlichen Formatierungen kaum zu erkennen
- Um eine Routine zu überfliegen müssen Sie mehr als eine Seite weit blättern
- Die Routinen wimmeln von if und else da sich im Laufe der Jahre viele Sonderfälle angesammelt haben
- Die Namensgebung von Variablen ist so ungünstig, dass Sie mit einer volltextsuche hunderte Stellen finden, wo diese eventuell verändert wird
- Beim Überfliegen von Quelltexten erleben Sie ein Déjà-vu nach dem anderen, da Codestellen sich viel zu oft ähneln
Was tun? Wegwerfen und neu schreiben? Oder Know-How erhalten und den Code verbessern?
In Ihrem bestehenden Code steckt viel Arbeit und Know-How. In vielen Fällen ist der Aufwand einer Neuentwicklung zu hoch. Und es dauert oft viel zu lange, bevor die neue Version produktiv gehen kann.
Im Rahmen des Refactorings ist es oftmals sinnvoll, gleich mittels Unit-Tests die korrekte Arbeitsweise des Codes abzusichern – sofern diese zuvor noch nicht existierten.
Dadurch verifiziert man nicht nur, dass beim Refactoring nichts verändert worden ist. Vielmehr legt man die Basis für eine qualitativ viel höherwertige Software, da mit diesen Unit-Tests grundsätzlich Grenzen der Funktionsfähigkeit von Routinen ausgelotet werden. Beim Schreiben von Tests fallen oftmals Schwachstellen in der bestehenden Implementierung auf.
Suchen Sie einen Dienstleister für die Weiterentwicklung oder Migration Ihrer Software? Sprechen Sie einfach uns an oder senden Sie uns eine E-Mail.