promptgarten 🌱
🌍 EN
Guide●●●4 Min · +40 XP

Sicheres Refactoring mit KI-Agenten

Ein Agent kann beim Refactoring leise das Verhalten ändern, statt nur die Struktur – Tests und kleine Schritte verhindern das.

Was Refactoring eigentlich bedeutet

Refactoring heißt: die innere Struktur von Code verbessern, ohne sein von außen sichtbares Verhalten zu ändern. Bekannt wurde der Begriff vor allem durch Martin Fowlers gleichnamiges Buch. Das "ohne Verhalten zu ändern" ist der entscheidende Teil – und genau der geht bei KI-Agenten leicht verloren, wenn niemand ihn einfordert.

Warum Agenten hier abrutschen

Ein Agent sieht beim Umbauen oft Dinge, die ihm "falsch" vorkommen – eine seltsame Bedingung, eine doppelte Prüfung. Ohne klare Anweisung "fixt" er das gleich mit, statt nur umzustrukturieren. Aus einem reinen Refactoring wird so unbemerkt eine Verhaltensänderung.

Die drei wichtigsten Absicherungen

  1. Tests zuerst: Vor dem Umbau muss eine Testsuite existieren, die das aktuelle Verhalten absichert. Ohne Tests kannst du nicht prüfen, ob sich etwas geändert hat.
  2. Kleine Schritte: Ein Umbau pro Schritt, nach jedem Schritt Tests laufen lassen, jeden grünen Schritt einzeln committen.
  3. Verhalten explizit einfordern: Sag klar "refactor, ohne das Verhalten zu ändern" statt nur "mach den Code besser".

Typische Fallen

Der Agent ändert stillschweigend eine öffentliche Schnittstelle, löscht Code, der ihm tot vorkommt, aber dynamisch aufgerufen wird, oder vermischt Refactoring mit Feature-Wünschen in einem Rutsch.

BEISPIEL

Prompt: 'Extrahiere die Validierungslogik aus processOrder() in eine eigene Funktion validateOrder(). Verhalten darf sich nicht ändern. Führe nach der Extraktion die bestehende Testsuite aus und melde dich, falls ein Test fehlschlägt, bevor du weitermachst.'

🛠️ ÜBUNG — MACH DAS BEI DIR

Nimm eine Funktion aus deinem eigenen Projekt, die zu viel auf einmal macht, und lass sie von einem Agenten in kleinen, testabgesicherten Schritten refactoren.

  1. Prüfe zuerst, ob es einen Test gibt, der die Funktion abdeckt. Falls nicht: lass zuerst einen Test schreiben, der das aktuelle Verhalten festhält.
  2. Bitte den Agenten explizit: 'Extrahiere [Teil X] in eine eigene Funktion, Verhalten darf sich nicht ändern. Nach jedem Schritt Tests laufen lassen.'
  3. Lies den Diff durch, bevor du committest – suche gezielt nach Änderungen, die über reine Umstrukturierung hinausgehen.

SELBST-CHECK

  • Sind alle Tests nach dem Refactoring noch grün – und war das vorher schon geprüft?
  • Enthält der Diff irgendeine Zeile, die nicht nur Code verschiebt, sondern eine Bedingung, einen Wert oder eine Fehlermeldung ändert?
  • Wurde in einem Rutsch committet, oder ließen sich einzelne Teilschritte separat nachvollziehen?

KURZ-QUIZ

Was ist die wichtigste Voraussetzung, bevor ein KI-Agent ein größeres Refactoring an bestehendem Code durchführen sollte?

QUELLEN

VERWANDTE THEMEN

Testing mit Agenten: Tests schreiben lassen und als Gate nutzen ●●○Pattern: Erst planen, dann coden ●●○Git & GitHub für Vibe-Coder ●○○Agent festgefahren? So kommst du raus ●●○