Legacy-Refactor: erst mal Rambo spielen
Bandana aufsetzen, erst dann IDE
Du triffst auf Legacy-Code, so überladen wie ein sowjetischer Laster. Die Versuchung: erst alles verstehen, dann anfassen. Schlechte Idee. Schalte zuerst in den Rambo-Modus:
- Alles raus, was rumliegt: tote Features, Flags, die niemand liest, vergessene Libs. Wenn es keiner nutzt, ist es Ballast.
- Esoterische Helper löschen: ein Util, das 2018 einmal für einen manuellen Test lief? Weg damit.
- Zombie-Routen abklemmen: ein Endpoint ohne Metriken oder Logs ist verdächtig. Abschalten und schauen, wer schreit.
Schlimmstenfalls holt Git zurück, was du geworfen hast. Archäologie kommt später.
Erst entmisten, dann verstehen
Je kleiner der Umfang, desto besser atmet dein Gehirn. Mit weniger Scope siehst du sofort, was wirklich genutzt wird:
- Aufrufe nachverfolgen:
rgoderdepcruisezeigen schnell, ob eine Abhängigkeit noch relevant ist. Null Treffer? Deinstallieren. - Events und Jobs checken: eine Queue, die niemand konsumiert, oder ein stummer Cron sind Alarme. Wie refactorst du einen Geist?
- Runtime beobachten: Starte die App ohne die entfernten Module. Du siehst echte Fehler, keine eingebildeten.
Veraltete Libraries: behalten oder neu schreiben?
Eine uralte Abhängigkeit für genau eine Funktion? Du hast nicht unterschrieben, moment.js bis 2025 zu schleppen, nur um ein Date zu formatieren. Frag dich:
- Wie oft wird es aufgerufen? Drei Stellen? Schreib die Funktion in zehn Zeilen neu und streich eine Abhängigkeit.
- Wie hoch ist der Upgrade-Aufwand? Zwingt die Lib zu sechs Major-Releases, ist Ersetzen vermutlich schneller.
- Gibt es eine native Alternative? Meist ja. Standard-APIs decken 80% ab, den Rest codest du sauber selbst.
Je mehr du kürzt, desto lesbarer wird der Rest. Und falls du wirklich ein zentrales Teil gelöscht hast, stellt Git es in unter dreißig Sekunden wieder her.
Erst Rambo, dann Architekt
Diese "brachiale" Phase ist nicht der finale Refactor. Sie bereitet das Feld vor:
- Du klärst den Umfang: weniger Fett, mehr Essenz.
- Du reduzierst Risiken: weniger Dependencies, weniger Bug-Vektoren.
- Du beschleunigst den nächsten Schritt: der echte Umbau (Tests, Design, Entkopplung) wird machbar.
Also ja, setz das rote Stirnband auf und räum im Schnellfeuer auf. Danach erst kommen die Blaupausen, die Architektur und erwachsenes Coden. Git hebt die Erinnerungen auf, du behältst die Nerven.