AI 写的代码要不要读?先问它有权改变什么

2nd Aug 2026
AI 原生系统
一只手把尚未定案的代码纸带送过权威边界,使它成为业务信任的记录

最近,一场关于 AI 写的代码到底要不要读的争论引起了我的好奇。

Mitchell Hashimoto 的回答只有四个词:“I read the code.”

当时,他刚介绍了一套多模型协作流程:一个模型做计划,一个写代码,再由另一个判断结果。但最后的质量关,仍然是他自己读源码。

他后来把边界说得更清楚:代码只留在自己手里是一回事,交给别人维护又是另一回事

Uncle Bob 的做法几乎相反。他不读 agent 生成的实现,而是把精力放到规格、单元测试、Gherkin 验收测试、变异测试、质量指标、QA 和最终验证上。他对工程师角色的定义也很直接:“I am the engineer because I am accountable.”

讨论很快呈现出两种主张。

一派认为,不读源码,出了问题怎么维护、怎么排查?另一派反问,如果每一行都要重新读一遍,AI 带来的效率在哪里?

两边都有道理。Mitchell 把人的理解放在实现里;Uncle Bob 把大量判断前移到规格和证据中。他们都认为结果必须由人负责,真正的分歧是:承担责任,到底需要多深的源码理解?

这不是一个纯粹的哲学问题。它也是我工作中面对的实际取舍。

Should You Read AI-Generated Code?

一进入关键系统,问题就变了

我不会读完 AI 生成的每一行代码。

AI 让实现变快了,但人的注意力没有同步增加。真正的挑战,是哪些代码可以只看结果,哪些必须理解到底。

如果是私有原型、一次性分析,或者随时可以丢弃的脚本,我通常看结果、跑测试,确认没有明显问题就继续。影响范围有限,恢复也很简单。

但只要 AI 动到关键系统或 system of record(权威记录系统),我的审查方式就会改变。

关键系统之所以重要,是因为失败后果严重。System of record 之所以重要,是因为其他人和系统会把它的数据当成事实。两者经常重叠,但风险来源不同。

五行权限判断、余额更新、客户状态修改或数据迁移,可能比一千行原型界面更值得深读。Diff 大小,并不能代表后果大小。

同一段数据清洗逻辑,如果只处理复制出来的 CSV,结果错了可以丢掉重来;如果它直接写入 system of record,错误就可能进入报表、权限、客户沟通和自动流程。

回滚代码或许能阻止下一次错误写入,却未必能恢复已经被改坏的数据、下游副本、审计记录,以及基于错误状态做出的决定。

代码已经撤回,但权威记录里的错误状态仍然传播到了三个下游记录

我没有一个戏剧性的事故故事。这恰恰是重点:边界应该设在事故发生之前。

我的观点:审查深度应该跟着权威走

“AI 写的代码要不要读?”这个问题问错了。

我真正关心的是:这段代码有权改变什么?

审查深度不应该由谁写了代码、改了多少行决定,而应该由这项修改的权威、后果由谁承担,以及出错后能否发现和恢复来决定。

读源码和跑测试都重要,但它们会以不同方式失效。阅读能帮助人建立维护系统所需的心智模型,却不能证明代码正确;测试可以反复检查已经写进去的预期,却不能保证我们一开始就问对了问题。如果实现、测试和审查都来自同一份 AI context,它们还可能重复同一个错误假设。

少读源码还有一项代价:团队可能逐渐失去共同的系统模型。所以,进入生产和关键路径的修改,不能只靠测试证据。

所以,我把审查分成四层:

  • 结果: 私有、可丢弃、容易恢复的工作,确认结果即可。
  • 证据: 一旦有人或流程依赖输出,就要检查测试、日志、CI,以及采用不同方法或 context 的验证。
  • 系统模型: 修改进入生产或影响权威状态,必须有人能解释数据流、业务不变量、错误传播、可观测性和恢复方案。
  • 关键路径: 涉及权限、资金、隐私、删除、迁移、安全或 system-of-record 写入,必须理解相关源码路径。

修改越接近权威状态,审查就从结果逐层深入到证据、系统模型和关键路径

这四层是累积的。读过关键路径不能代替测试,测试全绿也不能代替对状态变化的理解。

对我来说,system-of-record 修改最低从“系统模型”开始;关键写入路径通常必须下沉到源码。

我的发布规则很简单:没有明确负责人,没有审过关键写入路径,没有写清业务不变量,也没有可信的对账与恢复方案,就不发布。

真正的 ownership,是对状态变化负责

AI 降低了实现成本,却没有降低后果的成本。

我们不可能用同样强度读完每一行生成代码,也不能让没人理解的代码变成下一个人的问题。真正需要决定的,是人的理解必须在哪些地方最深。

我不必理解 AI 写出的每一行。但只要它能够改写业务认定的事实,或者制造业务无法接受的后果,就必须有人说得清:状态如何变化、哪些不变量必须成立、它可能怎样失败,以及如何恢复事实。

接受一项 AI 生成的修改之前,我现在会问:如果所有测试都是绿的,但现实仍然错了,谁能解释原因,并把事实恢复回来?

订阅我的邮件通讯

用 AI 构建,分享真正有效的方法。订阅即可在新文章发布时收到通知。

无追踪。无垃圾邮件。纯粹内容。

© 2020-2026 Aaron Guo