Skip to main content
Möchten Sie das nicht manuell einrichten? Fügen Sie einen Link zu dieser Seite in eine Devin-Sitzung ein und bitten Sie Devin, alles für Sie einzurichten.
1

Zeigen Sie Devin den Monolithen

Sie kennen die Datei – ein einzelner Express-Router, der über achtzehn Monate gewachsen ist. Jeder Endpoint für jede Domain lebt in src/routes/index.ts: Benutzerregistrierung neben Payment-Webhooks neben Produktsuche. Inline-Auth-Checks wurden in 40 Handlern per Copy & Paste dupliziert. Niemand will sie anfassen, weil eine Änderung an der Bestelllogik die Benutzer-Endpunkte dreihundert Zeilen weiter oben brechen könnte.So sieht der Anfang der Datei typischerweise aus:
src/routes/index.ts (before — 2,000 lines)
Sag Devin ganz genau, wie die Zielstruktur aussehen soll.
2

Devin mit Konventionen anleiten

Devin liest deine Codebasis, um Muster zu erkennen, aber beim Refactoring sind Knowledge-Einträge am wertvollsten. Füge Einträge für Konventionen hinzu, denen Devin folgen soll:
  • Router-Muster — “Jeder Domain-Router verwendet Router() und wird in der Root-Datei mit app.use('/domain', domainRouter) eingebunden.”
  • Middleware — “Auth-Middleware befindet sich in src/middleware/ und wird immer importiert, niemals inline definiert.”
  • Fehlerbehandlung — “Alle Routen-Handler verwenden unseren asyncHandler-Wrapper aus src/lib/asyncHandler.ts — niemals ein rohes try/catch.”
Devin auf einen bereits gut strukturierten Router in deiner Codebasis zu verweisen, liefert oft bessere Ergebnisse, als Konventionen komplett neu zu beschreiben. Füge eine Zeile wie “Folge dem Muster in src/routes/admin.ts, das bereits sauber getrennt ist” zu deinem Prompt hinzu.Du kannst Devin auch bitten, Knowledge-Einträge für dich zu erzeugen — beschreibe einfach deine Konventionen, und es erstellt gut strukturierte Einträge, die du überprüfen und speichern kannst.
3

PR von Devin überprüfen

Devin erfasst alle Endpoints, verfolgt den Importgraphen, extrahiert gemeinsam genutzte Logik, erstellt die Domain-Dateien, konfiguriert den Root-Router neu und führt Ihre Testsuite aus. So sieht der Pull Request (PR) typischerweise aus:
So sieht der bereinigte Root Router nach der Aufteilung aus:
src/routes/index.ts (after — 15 lines)
Und eine Domain-Routing-Datei, in der die gemeinsame Middleware korrekt importiert ist:
src/routes/orders.ts (after — excerpt)
Jeder URL-Pfad bleibt identisch — /orders wird jetzt von ordersRouter verarbeitet, der unter /orders eingebunden ist, sodass bestehende Clients und Tests weiterhin ohne Änderungen funktionieren.
4

(Optional) Den Branch auschecken und lokal testen

Für einen strukturellen Refactor wie diesen lohnt es sich, den Branch zu pullen und die Änderungen lokal zu überprüfen, bevor du mergst. Schau ihn dir in Devin Desktop oder deiner bevorzugten IDE an, starte die App und rufe ein paar Endpoints auf, um sicherzustellen, dass sich Routing, Middleware und Fehlerbehandlung genauso verhalten wie zuvor.
Falls etwas nicht stimmt, hinterlasse einen Kommentar in der PR — Devin greift ihn auf und liefert einen Fix nach.
5

Bereinigung fortsetzen

Sobald der Router aufgeteilt ist, verwende Folge-Prompts, um das Refactoring zu erweitern: