Publiziert: Zuletzt aktualisiert:

Refactoring

Refactoring ist die Verbesserung der internen Struktur von Code, ohne sein externes Verhalten zu ändern. Es ist keine Funktion, kein Bugfix, kein Rewrite, sondern eine Disziplin der kontinuierlichen Codepflege, die verhindert, dass aus technischen Schulden ein Systemkollaps wird.

Ohne regelmässiges Refactoring versteinert Code: Neue Features werden immer teurer, Bugs häufiger, Entwickler frustrierter.

Kernprinzipien

  • Boy Scout Rule: Hinterlasse den Code stets etwas sauberer als du ihn vorgefunden hast.
  • Red-Green-Refactor: Im TDD-Zyklus folgt Refactoring immer auf grüne Tests, nie davor.
  • Small Steps: Grosse Refactoring-Sprünge ohne Tests enden in "works on my machine"-Dramen. Kleine, testgesicherte Schritte sind besser.
  • No Behavior Change: Das öffentliche Verhalten bleibt identisch. Wenn etwas kaputt geht, war es kein Refactoring.

Häufige Refactoring-Muster

  • Extract Method: Einen Code-Block in eine benannte Funktion auslagern.
  • Rename: Variable, Klassen und Methoden so benennen, dass sie ihre Absicht klar ausdrücken.
  • Move Feature: Logik in das Objekt verschieben, das die Daten besitzt.
  • Replace Conditional with Polymorphism: if-else-Kaskaden durch Objekt-Hierarchien ersetzen.
  • Strangler Fig: Schrittweise Ablösung von Legacy-Modulen durch neuen Code (siehe Strangler Fig Pattern).

Der Fokus: Kontinuierlich, nicht kampagnenhaft

Refactoring als einmaliges Grossprojekt scheitert fast immer. Als tägliche Gewohnheit in jeder Story ist es günstig und effektiv.

FAQ

Dürfen wir für Refactoring eigene Tickets anlegen?

Kleine Refactorings werden inline gemacht. Grössere strukturelle Änderungen werden als eigene Tasks im Backlog geplant, mit klarer Begründung ("Enables Feature X", "Reduces bug risk in module Y").

Wie rechtfertigen wir Refactoring vor dem Business?

Zeigt den direkten Zusammenhang: "Dieses Refactoring reduziert die Einbauzeit von Feature X von 2 Wochen auf 3 Tage". Technische Schulden haben reale Opportunitätskosten.

Reference Guide

  • Refactoring (Fowler): Das Standardwerk. refactoring.com
  • Working Effectively with Legacy Code (Feathers): Refactoring ohne Tests. O'Reilly
  • Refactoring Catalog: Vollständige Sammlung von Mustern. refactoring.guru

Verwandte Themen

Offene Punkte