Dead Code entfernen: Risikoarm identifizieren, löschen, absichern.
Dead Code entfernen: Wie man sicher aufräumt ohne etwas zu zerbrechen
Toter Code ist nicht nur Ballast. Er ist Verwirrungspotenzial für jeden, der die Codebase liest.
Warum Dead Code so lange überleben kann
Weil niemand sicher ist, ob er wirklich tot ist. "Das wird vielleicht irgendwo verwendet" – dieser Gedanke hält Code am Leben, der schon seit zwei Jahren niemand mehr aufruft.
Die Lösung ist nicht Mut, sondern Werkzeuge.
Wie man Dead Code sicher identifiziert
Statische Analyse: PHPStan (auf höheren Levels), phpstan-dead-code, ts-prune (TypeScript), ESLint no-unused-vars. Diese Tools finden syntaktisch toten Code – Funktionen, die nirgendwo aufgerufen werden.
Coverage-Daten: Code, der nie von Tests ausgeführt wird, ist oft auch im Produktivbetrieb tot. Kombiniert mit Produktions-Coverage-Messung (z.B. via XDebug Remote Coverage oder Blackfire) können Bereiche identifiziert werden, die real nie ausgeführt werden.
Git-History: Code, der in den letzten 2 Jahren nie geändert wurde, und keine dokumentierten Nutzungspunkte hat – guter Kandidat.
Risikoarmes Entfernen
Vor dem Löschen: sicherstellen, dass Tests den Bereich abdecken. Dann: löschen, Tests laufen lassen, kurz in Staging beobachten. Nicht sofort in Produktion – ein Sprint in Staging gibt Zeit, unerwartete Nutzungen zu bemerken.
Und: Git ist eure Geschichte. Code wird nie endgültig verloren – er ist nur ein git revert entfernt.
Was nicht "dead code" ist
Code, der selten ausgeführt wird, ist nicht automatisch tot. Error-Handler, Fallback-Logik, Backup-Code-Pfade – die werden gebraucht, wenn es drauf ankommt.
Checkliste Dead Code
Statische Analyse für unerreichbaren Code konfiguriert
Coverage-Bericht ausgewertet auf nicht-abgedeckten Code
Identifizierter Code in Staging-Branch entfernt
Monitoring-Periode in Staging eingehalten
Löschen durch Tests abgesichert
Dead Code sauber entfernen?
markom.digital macht Codebase-Cleanup strukturiert und risikoarm – kein Raten, kein Hoffen.