Skip to main content
Non vuoi configurarlo manualmente? Incolla un collegamento a questa pagina in una sessione di Devin e chiedigli di impostare tutto per te.
1

Mostra il monolite a Devin

Conosci il file — un unico router Express cresciuto per diciotto mesi. Ogni endpoint per ogni dominio vive in src/routes/index.ts: la registrazione utente accanto ai webhook di pagamento accanto alla ricerca dei prodotti. I controlli di autenticazione inline sono copiati e incollati in 40 handler diversi. Nessuno vuole toccarlo perché una modifica alla logica degli ordini potrebbe compromettere gli endpoint utente trecento righe più sopra.Ecco come di solito si presenta l’inizio del file:
src/routes/index.ts (before — 2,000 lines)
Dì a Devin esattamente come vuoi che sia la struttura finale.
2

Guida Devin con le convenzioni

Devin legge la tua codebase per individuare i pattern, ma è nel refactoring che le voci in Knowledge sono più utili. Aggiungi voci per le convenzioni che Devin dovrebbe seguire:
  • Router patterns — “Ogni domain router utilizza Router() ed è montato con app.use('/domain', domainRouter) nella root”
  • Middleware — “Il middleware di autenticazione si trova in src/middleware/ ed è sempre importato, mai definito inline”
  • Error handling — “Tutti i route handler usano il nostro wrapper asyncHandler da src/lib/asyncHandler.ts — mai un try/catch diretto”
Far lavorare Devin su un router già ben strutturato nella tua codebase spesso produce risultati migliori rispetto a descrivere le convenzioni da zero. Aggiungi una riga come “Segui il pattern in src/routes/admin.ts, che è già ben separato” al tuo prompt.Puoi anche chiedere a Devin di generare voci di Knowledge per te — ti basta descrivere le tue convenzioni e creerà voci ben strutturate che puoi rivedere e salvare.
3

Rivedi la PR di Devin

Devin mappa ogni endpoint, traccia il grafo degli import, estrae la logica condivisa, crea i file di dominio, riconfigura il router root ed esegue la tua suite di test. Ecco come si presenta in genere una PR:
Ecco come si presenta il router root pulito dopo la suddivisione:
src/routes/index.ts (after — 15 lines)
E un file di route per il dominio, con il middleware condiviso correttamente importato:
src/routes/orders.ts (after — excerpt)
Ogni percorso URL rimane invariato — /orders è ora gestito da ordersRouter montato su /orders, quindi i client e i test esistenti continuano a funzionare senza modifiche.
4

(Facoltativo) Esegui il checkout del branch e testa in locale

Per un refactor strutturale di questo tipo, vale la pena fare pull del branch e verificare in locale prima di effettuare il merge. Aprilo in Devin Desktop o nel tuo IDE preferito, avvia l’app e prova alcuni endpoint per confermare che routing, middleware e gestione degli errori si comportino esattamente come prima.
Se qualcosa non va, lascia un commento sulla PR — Devin se ne occuperà e invierà una soluzione.
5

Prosegui la pulizia

Una volta che il router è stato suddiviso, utilizza prompt successivi per ampliare il refactoring: