摘要:

本文围绕 Codex 一次修改多个文件后该如何检查展开,重点分析改动范围、公共方法、异常处理、测试文件以及配置依赖这5类高风险内容。文章强调,Codex 提示“任务完成”并不代表代码可以直接提交,开发者还需要查看文件差异、确认影响范围,并对核心功能进行人工验证。

使用 Codex 修改代码时,经常会遇到这种情况:

原本只是让它修复一个接口报错,任务完成后却显示修改了十几个文件。打开项目一看,除了业务代码,配置文件、测试文件、公共方法甚至依赖文件也发生了变化。

这时很多人会有两个疑问:

Codex一次修改这么多文件正常吗?这些代码能不能直接提交?

答案要看任务本身。

如果是修改数据库字段、重构公共组件或者调整项目目录,涉及多个文件很正常。但如果只是修复一个按钮失效、一个接口参数错误,却改动了十几个文件,就应该先停下来检查。

提交前,至少要看下面5项。

一、改动文件是否超出了任务范围

先不要急着看每一行代码,第一步是查看修改文件列表。

假设你的任务是:

修复用户登录后没有正确跳转的问题。

正常情况下,改动可能集中在登录页面、路由配置或登录状态处理模块。

如果 Codex 同时修改了数据库、注册页面、用户资料、公共请求封装和项目依赖,就要检查这些改动是否真的必要。

可以先让它解释:

请逐个说明本次修改的文件、修改原因,以及它们与登录跳转问题的关系。

如果某个文件无法说明与任务的直接关系,通常就不应该出现在这次提交中。

二、公共方法和接口有没有被顺手修改

Codex在解决局部问题时,有时会选择改公共代码。

例如,某个页面调用接口时报错,它可能不修改当前页面,而是直接调整公共请求方法。当前问题虽然解决了,但其他几十个页面也在使用这个方法,风险就被扩大了。

需要重点检查这些内容:

  • 公共工具函数;
  • 请求封装;
  • 全局状态管理;
  • 公共组件;
  • 接口参数和返回类型;
  • 权限判断方法。

看到公共文件发生变化时,先确认两个问题:

第一,能不能只在当前模块内解决?

第二,其他调用方是否会受到影响?

局部问题优先局部处理。除非已经确认公共逻辑本身存在错误,否则不要为了少写几行代码,直接修改整个项目都在使用的方法。

三、有没有删除原有的异常处理

AI修改代码时,很容易把复杂逻辑简化。

原来的代码可能包含参数校验、空值处理、错误日志、重试机制和权限判断。Codex为了让主流程更顺畅,可能会删除部分看起来重复的判断。

代码变短了,不代表代码变安全了。

检查差异时,要特别注意这些变化:

  • try/catch是否被删除;
  • 空值判断是否减少;
  • 错误信息是否被隐藏;
  • 权限校验是否被绕过;
  • 失败后的回滚逻辑是否还在;
  • 日志记录是否被移除。

有些异常处理平时很少触发,但一旦线上数据不符合预期,它就是最后一道保护。

因此,看到大量删除代码时,不能只看测试是否通过,还要确认原来的保护逻辑为什么存在。

四、测试通过是不是因为测试也被改了

Codex修改业务代码后,通常也可能调整测试文件。

这种做法不一定有问题。业务需求发生变化时,测试当然也要更新。

真正需要警惕的是:业务代码没有真正修好,只是把测试条件改宽了。

例如原来的测试要求:

接口失败时必须返回明确的错误状态。

修改后却变成:

只要接口有返回结果就算通过。

测试仍然是绿色,但实际要求已经被降低了。

提交前要分别查看业务代码和测试代码,确认测试验证的是用户需求,而不是单纯配合当前实现。

可以让 Codex再次回答:

请说明每个测试用例验证的业务行为,不要只解释代码执行结果。

如果它无法清楚说明测试对应的真实场景,就需要人工重新检查。

五、有没有修改配置、依赖和环境文件

下面这些文件一旦发生变化,应该提高警惕:

package.json
package-lock.json
.env
tsconfig.json
vite.config.ts
Dockerfile
数据库迁移文件
CI/CD配置文件

有时为了修复一个类型报错,Codex会升级依赖;为了让本地项目运行,它可能修改环境配置;为了绕过构建错误,它也可能关闭某些检查规则。

这些方法在当前环境中可能有效,换一台电脑或者进入线上环境后,却可能出现新的问题。

尤其是依赖锁定文件发生大面积变化时,要确认是否真的安装了新依赖,还是因为重新执行安装命令导致版本被整体刷新。

如果任务本身与依赖和环境无关,最好提前说明:

禁止修改依赖版本、环境变量和构建配置。如确实需要修改,请先解释原因。

我现在常用的提交前检查方式

Codex完成任务后,我不会马上提交,而是继续让它做三件事:

第一,列出所有修改文件及修改原因。
第二,指出本次改动可能影响的其他模块。
第三,给出需要人工重点检查的位置。

然后再人工查看代码差异,运行相关测试,并实际操作一次核心功能。

如果改动范围明显超过任务范围,我通常会撤销无关修改,让它重新按照限定目录处理,而不是在十几个文件中逐个修补。

关于 ChatGPT、Codex 的使用和订阅问题,可以点击主页私信交流

结语

Codex一次修改十几个文件,不一定代表它做错了。

真正需要判断的是:这些改动是否都服务于同一个任务,是否影响公共逻辑,是否删除了原有保护,以及测试是否仍然验证真实需求。

对于小问题,修改范围越集中越容易验证;对于大规模重构,则要拆分任务、分批提交。

不要只看Codex最后说“任务已完成”。文件改了多少、具体改了什么、可能影响哪里,才是提交代码前真正需要确认的内容

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐