CraftNur für Abonnenten yesterday7Zu Lesezeichen hinzufügen

Nik Malykhin musste eine Java 1.5-Basis auf moderner Hardware zum Laufen bringen. Die ersten Antworten seines LLM waren plausibel, hielten aber dem Repository nicht stand. Der Durchbruch: Aufhören, ihm blind zu vertrauen, und ihn zwingen, sich auf Beweise zu stützen.
Ein LLM, das auf Legacy-Code losgelassen wird, produziert Antworten, die klingen richtig, aber nicht zum Projekt passen. Die funktionierende Disziplin: den Assistenten zwingen, von Beweisen - Code, Tests, Artefakte - auszugehen, statt von seinem Gedächtnis.
Nik Malykhin berichtete am 16. Juli 2026 auf martinfowler.com von seiner Modernisierung einer Java 1.5-Basis in eine aktuelle Umgebung. Der Kontext ist nicht alltäglich: Moderne Analyse- und Refactoring-Tools mögen Java 1.5 nicht, und viele lehnen den Eintritt ab. Sein erster Reflex - den Assistenten direkt nach Korrekturen zu fragen - produzierte das, was Malykhin als "plausible" Antworten beschreibt, die "did not hold up in the codebase": Es sieht aus wie gutes Java 1.5, aber es entspricht nicht dem tatsächlichen Repository.
Die Wende ist methodischer Natur. Statt den LLM als Autor zu verwenden, nutzte Malykhin ihn als Analytiker und Prüfer, indem er jeden Schritt im Repository verankerte: sorgfältiges Lesen des bestehenden Codes, Validierung von Hypothesen anhand von Tests und Ausführungsverläufen, Verweigerung, schneller zu arbeiten, als der Code selbst es zulässt. Die Botschaft des Artikels ist einfach: Die Modernisierung von Legacy mit einem LLM geht nicht schneller als ein Archäologe, sie geht genauso langsam, aber mit weniger Lücken in der Demonstration.
Das Muster trägt mehrere Namen in der modernen Agentenausrüstung - evidence-first prompting, grounded reasoning, retrieval-first - aber es basiert auf derselben Regel: Jede Aussage des Assistenten muss auf einem Artefakt des Repositories (eine Datei, eine Zeile, ein Test) basieren. Das Fehlen dieser Einschränkung ist das, was die kostspieligsten "False Positives" eines LLM auf Legacy produziert: APIs, die später als die Zielversion sind, Methoden, die nicht existieren, Phantom-Imports.
Für Teams, die mit Legacy arbeiten, dient der "Copilot" nicht zum Schreiben, sondern zum Finden. Die wahre Produktivität kommt daher, den LLM lesen zu lassen, nicht ihn raten zu lassen. Das Korollar für einen CTO: Die guten Metriken eines von KI unterstützten Modernisierungsprojekts sind nicht "generierte Zeilen", sondern "Hypothesen, die durch den Code selbst widerlegt werden". Der Unterschied zwischen den beiden ist der zwischen einem erfolgreichen Legacy-Projekt und einem Projekt, das wieder in Schulden zurückfällt.
Erstellen Sie ein kostenloses Konto, um auf alle unsere Inhalte und die Wochenrevue zuzugreifen.
Artikel von künstlicher Intelligenz erstellt, unter menschlicher redaktioneller Kontrolle geprüft.
Melden Sie sich an, um an der Diskussion teilzunehmen.
Interesting approach. Does this method also work for other legacy systems, or is it specific to Java 1.5?
Est-ce qu'on peut vérifier les suggestions du LLM avant de les implémenter, surtout sur un vieux système comme Java 1.5 ?
On pourrait tester les propositions du LLM dans un environnement isolé avant de les appliquer au système principal ?
Est-ce que ça marche aussi sur des gros projets Java 1.5 ?
Est-ce que ça marche aussi sur des gros projets Java 1.5 ? Les LLM ont du mal avec le code ancien très imbriqué, leurs suggestions sont moins fiables.
Est-ce que ça marcherait aussi pour d'autres vieux systèmes ?
Intéressant, mais comment ça se passe avec d'autres langages anciens ?
Les LLMs pourraient-ils vraiment sauver nos vieux systèmes ?
Harness Ops : post-mortems et bench des agents en prod