Zum Inhalt springen

Refactoring

oder auch Refaktorisierung

Männliche Person, frontal, schaut in die Kamera; trägt kariertes Hemd über dunkelfarbigem T‑Shirt; heller Innenraum mit unscharfem Monitor oder Poster links und Fenster rechts.

von Richard Albrecht am 19.10.2026

Refactoring heißt, die innere Form von Code zu verbessern, ohne sein Verhalten nach außen zu ändern.

Refactoring

Die Umgestaltung von Code mit dem Ziel, ihn verständlicher und änderbarer zu machen, ohne sein nach außen sichtbares Verhalten zu verändern.
Beispiel: „Vor der neuen Funktion stand ein Refactoring, damit sie überhaupt sauber einzubauen war.“

Auch: Refaktorisierung. Der Begriff wurde durch Martin Fowlers Buch von 1999 geprägt.

Abgrenzung zum Umbau: Ändert sich das Verhalten, ist es kein Refactoring mehr. Genau diese Trennung macht den Begriff nützlich.

Warum das Verhalten gleich bleiben muss

Weil sich sonst zwei Dinge zugleich ändern und im Fehlerfall niemand weiß, welches schuld war. Erst aufräumen, dann erweitern: Nach dem ersten Schritt muss alles noch genau so laufen wie vorher.

Die Voraussetzung dafür sind Tests. Ohne sie ist ein Refactoring eine Behauptung; mit ihnen eine überprüfbare Aussage. Das ist der Grund, warum Teams ohne Testabdeckung sich vor dem Aufräumen fürchten, und zwar zu Recht.

Die typischen Handgriffe

Einen Abschnitt in eine Funktion herauslösen und benennen. Eine Variable sprechender nennen. Doppelten Code zusammenführen. Eine lange Bedingungskette in frühe Rückgaben auflösen. Eine Klasse aufteilen, die zu viel tut.

Jeder dieser Schritte ist klein und für sich überprüfbar. Genau darin liegt der Unterschied zum großen Umbau, der über Wochen läuft und bei dem niemand mehr sagen kann, ob noch alles funktioniert.

Wann sich der Aufwand lohnt

Dort, wo ohnehin gearbeitet wird. Eine Stelle, die seit Jahren unverändert läuft, muss nicht schön sein. Eine, die jeden Monat angefasst wird, kostet bei jedem Mal, solange sie unübersichtlich bleibt.

Das ist auch die Antwort auf die Frage, wie sich Aufräumen gegenüber Kunden rechtfertigen lässt: als Teil der nächsten Änderung an derselben Stelle, nicht als eigener Posten.

Siehe auch:

Clean Code

Quelltext für die Menschen schreiben, die ihn später lesen.

#Programmiersprachen

Technische Schulden (Technical Debt)

Der Aufwand, der sich ansammelt, wenn eine schnelle Lösung gewählt wird statt einer tragfähigen.

#Programmiersprachen

Code Review

Die Durchsicht einer Änderung durch jemand anderen, bevor sie übernommen wird.

#Programmiersprachen

Funktionen

Ein benannter Abschnitt Code, der sich von anderer Stelle aufrufen lässt.

#Programmiersprachen