Skip to main content
不想手动配置?将本页链接粘贴到 Devin 的 session 中,让它帮你完成所有设置。
1

向 Devin 展示这个单体应用

你一定见过这样的文件——一个维护了一年半、越长越大的 Express 路由文件。每个业务域的每个接口都塞在 src/routes/index.ts 里:用户注册、支付 webhook、商品搜索全挤在一起。内联的鉴权检查被复制粘贴到了 40 个处理函数里。没人愿意动它,因为对订单逻辑的任何改动,都可能把上面三百行的用户相关接口改坏。这个文件顶部通常长这样:
src/routes/index.ts (before — 2,000 lines)
明确告诉 Devin 你希望目标结构是什么样的。
2

用规范引导 Devin

Devin 会阅读你的 codebase 以推断出 patterns,但在重构场景中,Knowledge 条目能带来最大的价值。为 Devin 需要遵循的规范添加条目:
  • Router patterns — “每个业务域的 router 都使用 Router(),并在应用根部通过 app.use('/domain', domainRouter) 挂载”
  • Middleware — “认证中间件位于 src/middleware/ 中,并且始终通过导入使用,绝不内联定义”
  • Error handling — “所有路由处理函数都使用来自 src/lib/asyncHandler.tsasyncHandler 包装器——绝不直接使用 try/catch”
让 Devin 参考你 codebase 中一个已经结构良好的 router,通常比从零开始用文字描述规范效果更好。在你的提示中加上一句类似 “遵循 src/routes/admin.ts 中的模式,该文件已经实现了清晰的结构分离”。你也可以让 Devin 为你生成 Knowledge 条目——只需描述你的规范,它就会创建结构良好的条目,供你审阅和保存。
3

审查 Devin 的拉取请求(PR)

Devin 会为每个端点建立映射,跟踪导入关系图,提取共享逻辑,创建领域文件,重新配置根路由,并运行你的测试套件。一个典型的 PR 大致如下:
这是拆分后精简的根路由配置:
src/routes/index.ts (after — 15 lines)
以及一个已正确导入共享中间件的域路由文件:
src/routes/orders.ts (after — excerpt)
所有 URL 路径保持不变 —— /orders 现在由挂载在 /orders 下的 ordersRouter 处理,因此现有客户端和测试无需任何改动即可继续工作。
4

(可选)检出该分支并在本地测试

对于这样的结构性重构,建议先拉取该分支,在本地验证无误后再合并。你可以在 Devin Desktop 或你常用的 IDE 中检出该分支,启动应用,并访问几个端点,确认路由、中间件和错误处理的行为与之前完全一致。
如果有任何地方看起来不对,请在该 PR 上留言——Devin 会看到并推送修复。
5

继续清理

路由拆分完成后,使用后续提示继续推进这次重构: