重构不是“顺手改好看”。它的目标是在不改变外部行为的前提下,让代码更容易理解、测试或扩展。让 Codex 做重构时,边界必须非常清楚。

先说明不改变什么

请重构这段代码,但保持外部行为不变。
不要改接口路径、返回结构、数据库字段、错误码和权限判断。
如果你认为必须改变行为,请先停下来说明原因。

这句话能防止 Codex 把重构做成功能改造。

重构前先建立保护

如果项目有测试:

重构前先运行相关测试,记录当前状态。
如果没有测试,请先指出哪些行为最需要手动检查。

重构后的第一件事是重新运行同一组测试。

适合 Codex 的重构类型

  • 提取重复逻辑
  • 拆分过长函数
  • 重命名含义不清的变量
  • 移除无用分支
  • 把散落的常量集中到已有配置位置

不建议一开始就让 Codex 做跨模块架构重写。那类任务需要先写设计方案。

推荐提示词

请重构 <文件/函数>。
目标:降低重复,提升可读性。
约束:
- 行为不变;
- 不新增依赖;
- 不改公开接口;
- 每一步改动都保持测试可运行。

请先给出重构计划,不要直接修改。

让 Codex 控制改动范围

可以要求它分阶段:

先只完成第一阶段重构,控制在 1-2 个文件。
完成后运行测试并停下来总结,不要继续第二阶段。

这比一次性大改更容易 review。

检查重构是否安全

重构后运行:

git diff

重点看:

  • 有没有改业务条件
  • 有没有改错误处理
  • 有没有改默认值
  • 有没有删掉看似无用但实际有副作用的代码

常见坑

不要把“重构”和“顺便修 bug”混在一起。如果发现 bug,先记录,再决定是否另开任务。

不要让 Codex 为了抽象而抽象。新抽象必须减少真实复杂度。

不要忽略性能路径。循环、缓存、数据库查询相关重构要格外小心。

官方来源

  • https://developers.openai.com/codex/learn/best-practices
  • https://developers.openai.com/codex/quickstart