Legacy Code refactoren

Posted by in clean code, legacy

Immer wieder komme ich mit Legacy Code in Berührung, der mitunter schon ziemlich alt sein kann. Dementsprechend schwierig kann die Arbeit mit so einer Codebasis werden. Richtig knifflig wirds, wenn von mehreren Entwicklern Änderungen eingepflegt wurden und immer wieder Spezialfälle individuell gelöst wurden, anstatt einen generellen Ansatz zu verfolgen.

Inzwischen habe ich mehrere Punkte für mich herausarbeiten können, die mir besonders weiterhelfen, wenn ich mit Legacy Code zu tun habe

  1. Umfangreiches Refactoring braucht Zeit. Diese Zeit muss vor allem störungsfrei sein. Ansonsten gibt es nur Frust und man zerstört im schlimmsten Fall durch Unsauberkeiten seinen ganzen Fortschritt.
  2. Hat man keine größere Zeitspanne zur Verfügung, nur kleine Refactorings wie Namensänderungen und Codeformatierung vornehmen (Beachte die Pfadfinderregel)
  3. Ruhe bewahren. Keine Panik. Alles andere führt zur Verwirrung und Unsauberkeiten.
  4. Schritt für Schritt. Ich beginne mit einer Sache, zum Beispiel das Auslagern von Inline-Styles in separate CSS-Dateien. Ziehe dann auch nur genau diese Änderung in der kompletten Codebasis durch. Fällt mir noch etwas auf, dann reicht eine Notiz.
  5. Immer das kleinst Mögliche Refactorisieren. Die schiere Masse kann beeindrucken. Hat man einmal angefangen, dann fällt mir immer mehr auf 🙂
  6. Testen und noch mehr Testen. Nichts is nerviger als nach getaner Arbeit feststellen zu müssen, dass nichts mehr geht. Eventuell eigene Tests für den Teilbereich an dem man gerade arbeitet erstellen (nicht immer möglich bei Systemen die dafür nicht konzipiert sind).
  7. Die Suchfunktion ist dein Freund. Globale Variablen und CSS-Regeln zu ändern, muss wohlüberlegt sein. Eine globale Suche nach den Anwendungsorten erspart böse Überraschungen.
  8. Pausen machen. Hochkonzentriert bleibe ich am ehesten mit kurzen Sprints von etwa einer halben Stunde. Dann stehe ich auf und bewege mich kurz.

Die Punkte, die ich hier aufgezählt habe, sollten selbstversändlich sein. Ich habe sie auch deswegen aufgeschrieben, weil sie für mich persönlich wichtig sind. Vielleicht helfen sie dem ein oder Anderem aber doch weiter.

Noch mehr wichtige Dinge, die man beachten sollte? Ich freue mich über Kommentare.