Definition von Code Refactoring
Code Refactoring (deutsch: Refrakturierung, Restrukturierung oder auch Überarbeitung) ist eine die strukturierte und gezielte Optimierung des Quellcodes einer Software. Dabei wird der Quellcode eines Programms überarbeitet, um ihn einfacher und verständlicher zu machen. In diesem Fall werden keine neuen Funktionen hinzugefügt, sondern die alten bleiben erhalten.
Die Programmiersprache wird ständig verbessert: Es gibt neue Funktionen, Bibliotheken und andere Dinge, die den Code einfacher und übersichtlicher machen. Selbst ein ideales Programm, das vor ein oder zwei Jahren geschrieben wurde, benötigt irgendwann ein Refactoring. Dabei wird der veraltete Code aktualisiert.
Ziele beim Code Refactoring
Grundsätzlich verfolgt Refactoring als ein Prozess der Codebearbeitung zur Reduzierung oder Beseitigung technischer Schulden zwei konkrete Ziele: die Steigerung der Leistungsfähigkeit der Software und die Erleichterung der Weiterentwicklung der Software.
Generell zielt ein Prozess der Refrakturierung darauf ab:
- die Projektarchitektur beizubehalten, ohne ihre Struktur zu verlieren;
- das Leben der Entwickler zu vereinfachen, indem der Code für alle Teammitglieder transparent und verständlich gemacht wird;
- den Prozess der Fehlersuche zu beschleunigen.
Refactoring wird oft mit Optimierung verwechselt, da diese beiden Prozesse oft gleichzeitig durchgeführt werden. Tatsächlich handelt es sich jedoch um zwei verschiedene Konzepte mit unterschiedlichen Zielen: eine Optimierung verbessert die Performance der Anwendung und ein Refactoring verbessert die Lesbarkeit des Codes.
Vorgehen beim Refactoring
Die oben genannten Ziele sollen durch folgende Maßnahmen erreicht werden:
– Die Beibehaltung und Verbesserung von Entwurf und Design. Dies verbessert sowohl die Übersichtlichkeit (z.B. indem die Software modularisiert) als auch die Erweiterungs- und Testbarkeit.
– Die Optimierung des Codes – einerseits z.B. im Sinne der Verwendung neuer, besserer, schnellerer oder robusterer Programmiersprachen, Bibliotheken, Widgets etc. und andererseits im Sinne der Lesbarkeit und Verständlichkeit.
– Die Beseitigung von Code-Smells wie z.B. Code-Duplikaten. Auch wenn es nicht das primäre Ziel des Refactorings ist, konkrete Fehler zu beheben, so kommt es doch immer wieder vor, dass im Zuge einer Software-Restrukturierung Fehler im Code entdeckt werden. Diese sollten natürlich zügig beseitigt werden. Dies hängt vom Schweregrad, der Priorität und dem Aufwand ab.
Das Refactoring erfolgt sequentiell, Schritt für Schritt. Es ist wie ein Zimmer aufräumen. Natürlich kann man alles aufräumen. Es wird jedoch empfohlen, zunächst die folgenden Probleme zu identifizieren:
- Toter Code ist ein Parameter, eine Variable, eine Methode oder eine Klasse, die nicht mehr verwendet wird. Diese Bereiche müssen entfernt werden.
- Duplizierung – der gleiche Code führt an mehreren Stellen im Programm die gleiche Aktion aus.
- Klassen-, Funktions- und Variablennamen übergeben keine Werte.
- Funktionen, Methoden, Klassen und Funktionsparameterlisten sind zu lang. Wenn ihre Länge den optimalen Wert überschreitet, müssen sie in kleinere Komponenten aufgeteilt werden.
- Eine große Anzahl von Kommentaren macht das Programm unübersichtlich.
- Normalerweise wird der Code in der Testphase aufgeräumt, wenn alles fertig ist und die Performance des Programms überprüft wird.
Refactoring ist ein unverzichtbarer Prozess in der dynamischen Welt der Softwareentwicklung. Die Qualität von Anwendungen kann verbessert und die Grundlage für zukünftige Innovationen geschaffen werden, indem der Code regelmäßig optimiert wird. Regelmäßiges Refactoring, das intern bei der Entwicklung neuer Funktionen oder bei der Fehlerbehebung durchgeführt wird, kann zur Aufrechterhaltung einer hohen Codequalität beitragen.