Skip to main content
Não quer configurar isso manualmente? Cole um link para esta página em uma sessão do Devin e peça para ele configurar tudo para você.
1

Mostre o monólito para o Devin

Você conhece aquele arquivo — um único router do Express que foi crescendo por dezoito meses. Todo endpoint de todo domínio fica em src/routes/index.ts: cadastro de usuário ao lado de webhooks de pagamento ao lado de busca de produto. Verificações de autenticação inline são copiadas e coladas em 40 handlers. Ninguém quer mexer nele porque uma alteração na lógica de pedidos pode quebrar os endpoints de usuário trezentas linhas acima.É mais ou menos assim que o topo do arquivo costuma ser:
src/routes/index.ts (before — 2,000 lines)
Diga ao Devin exatamente como você quer que a estrutura desejada fique.
2

Oriente o Devin com convenções

Devin lê sua codebase para inferir padrões, mas é na refatoração que as entradas de Knowledge geram mais impacto. Adicione entradas com as convenções que Devin deve seguir:
  • Padrões de router — “Cada router de domínio usa Router() e é montado com app.use('/domain', domainRouter) na raiz”
  • Middleware — “O middleware de autenticação fica em src/middleware/ e é sempre importado, nunca definido inline”
  • Tratamento de erros — “Todos os route handlers usam nosso wrapper asyncHandler de src/lib/asyncHandler.ts — nunca try/catch direto”
Direcionar o Devin a um router já bem estruturado na sua codebase muitas vezes produz resultados melhores do que descrever convenções do zero. Adicione uma linha como “Siga o padrão em src/routes/admin.ts, que já está claramente separado” ao seu prompt.Você também pode pedir ao Devin para gerar entradas de Knowledge para você — basta descrever suas convenções e ele criará entradas bem estruturadas que você pode revisar e salvar.
3

Revise o PR do Devin

Devin mapeia todos os endpoints, rastreia o grafo de importações, extrai a lógica compartilhada, cria os arquivos de domínio, reconfigura o roteador raiz e executa sua suíte de testes. É assim que o PR geralmente fica:
Veja como fica o roteador raiz limpo após a separação:
src/routes/index.ts (after — 15 lines)
E um arquivo de rota de domínio em que o middleware compartilhado é importado corretamente:
src/routes/orders.ts (after — excerpt)
Cada caminho de URL permanece o mesmo — /orders agora é tratado pelo ordersRouter montado em /orders, de forma que os clientes e testes existentes continuam funcionando sem nenhuma alteração.
4

(Opcional) Faça o checkout da branch e teste localmente

Para uma refatoração estrutural como esta, vale a pena puxar a branch e verificar localmente antes de fazer o merge. Abra no Devin Desktop ou na sua IDE preferida, inicie o app e acesse alguns endpoints para confirmar que o roteamento, o middleware e o tratamento de erros continuam se comportando exatamente como antes.
Se notar algo estranho, deixe um comentário no PR — Devin vai detectar e aplicar uma correção.
5

Continue a limpeza

Depois que o router for dividido, use prompts de acompanhamento para ampliar a refatoração: