【用 AI】多人多天的跨端项目重构,我用 Codex 一个人两天完成了

我是一名开发者,平时维护的是一个已经持续迭代一段时间的跨链、自托管交易平台。项目并不是一个简单的网页,而是由 Next.js Web、React Native Mobile、TypeScript 公共模块和 TradingView 图表等部分组成。

这类成熟项目的重构,难点通常不是“把某个函数改得更漂亮”,而是修改一处以后,Web、Mobile、公共状态、类型定义和数据链路都可能受到影响。尤其是交易相关代码,金额精度、链 ID、报价单位、缓存键或状态更新时序出现细小偏差,都可能造成真实的业务问题。

以前遇到这种范围的任务,我的第一反应通常是:需要多人分工,先花几天梳理,再分别修改和联调。这次我尝试把 Codex 当成一名可以阅读整个仓库、执行命令并持续验证的工程协作者。最后,一个人用了大约两天就完成了原本预计需要多人持续多天的重构。

一、我没有直接让 AI“帮我重构”

我发现,给 Codex 一句“帮我重构这个项目”,通常得不到稳定结果。大型项目里真正重要的是边界和约束,所以开始前我先在项目规则中写清楚几件事:

  1. 修改前必须阅读相关的上游和下游代码,不能只在报错位置打补丁。
  2. Web 与 Mobile 默认同步考虑,共享逻辑优先放进公共模块。
  3. 不允许为了简化代码而删除已有业务分支。
  4. 沿用项目现有组件、命名、类型和包管理方式。
  5. 每个阶段都要执行 TypeScript、ESLint 和自动化测试,最后再做双端人工验证。

这些规则的作用不是让 AI 写更多代码,而是让它知道什么不能做。对于成熟项目,明确“不允许破坏什么”往往比描述“想要什么”更重要。

二、先让 Codex 画地图,再让它动代码

我的实际流程分成了四步。

1. 只读分析

第一轮不允许修改代码,只让 Codex 寻找功能入口、调用链、类型来源、状态归属,以及 Web 和 Mobile 是否存在对应实现。它需要先回答:

  • 当前行为由哪些模块共同完成?
  • 哪些逻辑应该共享,哪些必须保留平台差异?
  • 修改会影响哪些消费者?
  • 哪些地方最容易产生回归?

这一步能避免一个常见问题:AI 很快修好了眼前文件,却在另一个端留下行为不一致。

2. 把大重构拆成小闭环

我没有让 Codex 一次改完,而是把工作拆成“公共类型与逻辑—Web 接入—Mobile 接入—测试与清理”几个闭环。每一步都保持改动尽量小,并在继续之前确认现有行为没有被改变。

这样做的好处是,一旦出错,可以立即知道问题属于哪一层,而不是面对几十个同时变化的文件反复猜测。

3. 让验证成为流程的一部分

每完成一段修改,就执行 TypeScript 类型检查、ESLint 和相关自动化测试。出现错误时,我不会只把最后一行错误发给 Codex,而是要求它结合调用链解释根因,并限定修复范围。

自动检查全部通过后,我又分别在 Web 和 Mobile 上做了人工体验,重点检查核心路径、状态切换和两端表现是否一致。

4. 人负责最后的业务判断

Codex 很擅长追踪引用、整理类型、迁移重复逻辑和补测试,但它不能替我判断交易业务是否合理。例如金额单位、报价方向、链上数据含义和异常状态,都必须由熟悉业务的人确认。

我的原则是:代码阅读和机械工作尽量交给 AI,业务取舍和最终验收由人负责。

三、我使用的脱敏提示词模板

下面是我整理后的通用版本,不包含项目内部信息:

这是一个成熟的跨端 TypeScript 项目,包含 Web、Mobile 和共享业务模块。请先只读分析,不要立即修改代码。找出目标功能的入口、上游数据来源、下游消费者、两端对应实现和现有测试,并列出可能的回归风险。方案必须优先复用共享逻辑,同时保留必要的平台差异。未经要求不要删除或简化已有业务分支。实施时拆成可独立验证的小步骤;每一步完成后执行类型检查、Lint 和相关测试。最后给出仍需人工验证的业务场景。

实际使用时,我会在后面补充具体任务、验收标准和不能改变的既有行为,而不是只提供一个文件路径。

四、结果为什么让我意外

这次重构原本预计需要多人协作、持续多天完成,最后由我一个人在 Codex 辅助下大约两天完成。类型检查、Lint、自动化测试以及 Web/Mobile 人工体验都通过了,没有发现明显问题。

我不会把这理解成“AI 写代码不会出错”。更准确的说法是,Codex 压缩了几个非常耗时间的环节:

  • 在大量文件中追踪依赖和调用关系;
  • 对照 Web、Mobile 与公共模块的实现差异;
  • 完成重复但容易遗漏的类型和接口调整;
  • 根据检查结果快速定位并修复问题;
  • 把测试、代码规范和项目约束持续带进每一轮修改。

真正带来效率提升的,不是一次生成多少代码,而是“分析—小步修改—自动验证—人工检查”这个循环变快了。

五、我踩过的坑

坑一:提示词太宽泛

只说“重构得更优雅”,AI 会自行决定边界,结果可能看起来更简洁,却破坏原来的业务约束。最好明确目标、非目标和验收方式。

坑二:只修当前文件

跨端项目最怕局部正确。必须要求 AI 主动检查上游、下游和另一端实现,否则重复逻辑和行为差异会继续累积。

坑三:把自动检查当成业务正确

类型检查和测试通过只能说明一部分问题。交易项目中的精度、方向、时序和异常状态,仍然需要人工验证。

坑四:一次塞入太多任务

当上下文里同时存在多个目标时,AI 容易混淆优先级。我会把不相关问题拆开,每轮只完成一个可以验证的闭环。

六、给其他开发者的三条建议

  1. 先建立项目级规则,再开始让 AI 修改大型仓库。
  2. 把“先分析、再实施、最后验证”写进每次任务,而不是只描述最终效果。
  3. AI 可以扩大一个人的执行能力,但不要把业务判断和最终验收也外包出去。

这次经历让我感受到,Codex 最有价值的地方不是替开发者写几个函数,而是帮助一个人掌控原本需要多人协作的大型改动。前提是项目有明确规则、验证流程和愿意对结果负责的人。

赞同!要让AI最大程度提升生产效率,但不能全权交由其做决策。用好了codex我们都是超级个体

“第一轮只读、不许改代码”这招值得抄,AI 一上来就动手,后面经常越补越乱。