乐于分享
好东西不私藏

AI时代的软件工程,Code Review成了新瓶颈

AI时代的软件工程,Code Review成了新瓶颈

这一轮 AI 编程工具最常被追问的是:它能写多少代码,能把开发速度提升多少?

但一个更棘手的问题开始浮出水面:

当代码生成速度持续快于人类理解代码的速度,谁来审查这些代码?

2026 年 7 月 23 日,软件工程媒体 The Pragmatic Engineer 在一篇文章中指出,越来越多工程负责人正在讨论同一个问题:代码审查负载持续上升。文章援引一线交流称,随着 AI 生成代码的质量和数量提高,软件开发的瓶颈正在从“编码”迁移到“审查”。

这并不是一句“AI 代码质量不行”可以概括的问题,恰恰相反,正因为 AI 已经能够快速产出大量看起来合理、可以运行、甚至附带测试的代码,审查才可能变得更难:审查者面对的不再只是几个明显错误,而是一批需要逐一理解其意图、边界和长期影响的改动。

AI 大幅降低了代码生成的边际成本,却没有同步降低工程判断的成本。

一、被忽略的反直觉:写得越快,积压可能越严重

传统软件团队的交付速度,常常受限于工程师写代码的时间。AI Coding Agent 改变了这一点:需求拆分、代码生成、测试补充、重构和文档更新,都可以被更快地执行,部分任务还能并行展开。

但软件交付不是一条只有“编码”环节的生产线。

一段代码从生成到上线,至少还要经历需求校验、代码审查、自动化测试、合并、部署与生产观测。AI 只要显著加速其中一个环节,压力就会自然流向下游。

可以用一个简单关系理解:

交付吞吐量,不由最快的环节决定,而由最慢且不可绕过的环节决定。

举一个只用于说明机制的例子:假设一名工程师过去一天提交 1 个 PR,审查者可以从容理解背景、检查实现;引入 Agent 后,同样时间内可能出现 3 个 PR,每个 PR 还可能包含更大的改动范围、更完整的测试,以及看似严谨的说明。具体倍数因团队而异,关键在于生成吞吐量和审查吞吐量并不会自动同步。

表面上,提交质量提高了。实际却可能同时发生三件事:

  1. 等待队列变长。
     生成速度提高,不代表审查能力同步扩容。
  2. 单次审查的认知成本上升。
     代码不是审查者亲手写的,缺少从问题到方案的形成过程,需要重新建立上下文。
  3. 低价值改动变多。
     代码生产成本下降后,过去“不值得做”的重构、优化和尝试也会进入队列。

这正是典型的局部优化悖论:单个开发者的产出指标上升了,整个系统的交付周期却未必缩短。

二、真正稀缺的不是代码,而是“有意图的审查”

代码审查并不等于寻找语法错误,也不只是判断测试是否通过。

高质量审查至少包含四层判断:

  • 实现判断
    :代码有没有明显缺陷,边界条件是否处理正确;
  • 系统判断
    :改动会不会破坏其他模块,是否引入隐性耦合;
  • 产品判断
    :实现的究竟是不是应该解决的问题;
  • 长期判断
    :这个方案会不会留下难以维护的抽象、依赖或安全风险。

其中,实现层的部分检查可以由静态分析、测试和 AI 辅助完成;系统影响、产品意图与长期权衡则更依赖业务上下文、架构经验和责任归属。

这解释了为什么“再部署一个 AI Reviewer”不能自动解决问题。

AI Review 工具可以发现某些局部问题,也能总结改动、标记风险区域、提供初步意见。但如果生成与审查流程依赖相同上下文,并共享相似盲区,就可能出现一种风险:一个 AI 生成了看似合理的实现,另一个 AI 又给出看似合理的批准。

更危险的变化是人的行为。

The Pragmatic Engineer 提到一种值得警惕的现象:当 AI 预审没有给出明显意见时,部分开发者会倾向于直接批准;而仍然坚持深入审查的工程师,则不断接收更多 AI 生成的 PR,最终陷入过载。

于是团队会出现两种退化:

  • 橡皮图章式 Review
    :流程存在,实质判断消失;
  • 英雄式 Review
    :少数资深工程师承担所有复杂判断,成为新的单点瓶颈。

前者把风险推向生产环境,后者把压力集中到最宝贵的人身上。两者都不可持续。

三、为什么 AI 代码尤其难审?

AI 生成的代码并不天然比人工代码差,但它具有几种会放大审查负担的特征。

1. 生成成本快速下降,审查成本却不会同步下降

让 Agent 多实现一个方案、多补一层抽象、多改几个文件,边际成本很低。可对审查者而言,每一行新增代码都要进入理解范围。

这造成了明显的不对称:

生成者只需要证明“它能写出来”,审查者却要判断“它是否应该存在”。

因此,AI 时代最有效的代码审查优化,往往发生在 PR 创建之前:限制改动规模、明确验收标准、减少无必要代码,而不是等海量代码生成后再寻找更快的审查方式。

2. 代码风格流畅,容易制造“正确感”

低质量人工代码常有明显信号:命名混乱、结构破碎、边界遗漏。AI 代码却可能格式整洁、注释完整、抽象统一。这些表面特征降低了审查者的警觉,却不能证明业务逻辑正确。

真正危险的错误往往不是“代码不能运行”,而是:

  • 对需求做了一个细微但错误的假设;
  • 在正常路径表现正确,在异常路径破坏数据;
  • 引入符合局部逻辑、却违背整体架构的抽象;
  • 测试验证了实现,却没有验证原始意图。

流畅性是一种可读性优势,也可能成为认知陷阱。

3. PR 描述和测试也可能来自同一套错误假设

过去,完整的 PR 描述和充分的测试通常是质量信号。进入 Agent 工作流后,代码、说明和测试可能由同一个模型、基于同一段上下文生成。

如果最初理解错了需求,三者仍可能彼此一致:

  • 实现符合错误理解;
  • 测试证明错误实现“通过”;
  • PR 描述再把错误理解包装成完整叙事。

因此,“测试全绿”只能说明代码满足了测试中表达的条件,不能单独证明测试表达了正确条件。

四、工具爆发背后:企业正在争夺新的控制点

围绕代码审查负载已经出现多类解决方案。

一类是专门的 AI 代码审查产品,对 PR 自动总结、发现缺陷并提出修改建议;一类是 Coding Agent 或开发平台内置的 Review 能力;还有一类产品原本掌握错误监控、项目管理或代码库上下文,如今也开始进入审查环节。

The Pragmatic Engineer 还列举了 Uber、Cloudflare、Faire、HubSpot 等公司自建审查工具的实践。以文中介绍的 Uber Code Inbox 为例,它不只提供审查入口,还尝试通过智能分配推动 PR 流转,并用风险画像提示审查者重点关注高风险改动。

Cloudflare 的官方披露提供了一个更具体的规模化样本。该公司在 2026 年 4 月介绍了一套基于 OpenCode 的 CI 原生审查系统:先按改动风险分层,再由最多 7 个专门 Reviewer 分别检查安全、性能、代码质量、文档、发布和内部规范,最后由协调 Agent 去重并判断严重程度。

Cloudflare 公布的 2026 年 3 月 10 日至 4 月 9 日数据覆盖 5,169 个代码仓库,系统共生成 159,103 条发现,平均每次审查约 1.2 条。其公开成本也呈明显的风险梯度:简单、轻量和完整审查平均分别约为 0.20、0.67 和 1.68 美元。

这些数字说明 AI Review 已经可以进入大规模 CI 流程,但不能被误读为独立的质量基准:数据来自企业自身披露,也没有直接证明 AI 审查减少了多少线上缺陷。Cloudflare 同时明确列出局限——架构意图、跨系统影响、细微并发问题以及超大改动,仍是 AI Reviewer 的薄弱环节。

这透露出一个关键信号:

代码审查工具的价值,正在从“帮忙找 Bug”扩展为“管理有限的人类注意力”。

对大公司而言,自建方案的吸引力也在这里。通用工具能读代码,却未必理解内部服务依赖、历史事故、权限边界、业务优先级和团队所有权。审查质量越依赖这些私有上下文,单纯接入一个外部模型就越难覆盖。

未来的竞争重点,很可能不是谁能留下更多评论,而是谁能更准确地回答三个问题:

  1. 这个改动风险有多大?
  2. 最适合审查它的人是谁?
  3. 哪些部分必须由人仔细判断,哪些可以交给自动化验证?

评论数量不是价值,注意力分配才是。

五、从 Review 转向 Verification,究竟意味着什么?

面对持续增加的 PR,一个更根本的思路是:不再把逐行人工阅读当作唯一的质量保证,而是建立一套能够为改动提供多层证据的验证系统。

但“让测试替代审查”仍然过于简单。

单元测试能验证局部行为,却很难发现跨服务问题;集成测试能覆盖组件协作,却可能遗漏真实用户路径;端到端测试更接近生产环境,但执行慢、维护成本高;模糊测试适合发现异常输入;形式化方法能提供更强保证,却只适用于部分高价值场景;生产观测能发现真实问题,却已经处在风险发生之后。

更合理的结构是一套分层验证体系:

这套体系的核心,不是取消人的 Review,而是重新定义人的职责:

  • 机器负责可重复、规则明确、可自动执行的检查;
  • 风险系统负责排序,让高风险改动获得更多注意力;
  • 人类负责意图、架构、权衡与责任;
  • 生产系统负责观测、灰度、回滚和持续反馈。

换句话说,Review 不应再是一道对所有 PR 一视同仁的人工关卡,而应成为风险驱动的验证编排

六、团队可以立刻采用的五条原则

公开实践仍在演化,但工程组织不必等待某个“终极 Reviewer”出现。以下五条原则已经具备现实可操作性。

原则一:限制 PR 的认知体积,而不只限制代码行数

500 行同一模式的机械修改,可能比 50 行跨越权限、数据和并发边界的代码更容易审查。

因此,PR 大小不应只有行数阈值,还要考虑涉及的模块数量、关键依赖、行为变化和回滚难度。一个 PR 应当只承载一个能够清楚解释的意图。

原则二:把“为什么改”放在“改了什么”之前

AI 很擅长总结 Diff,却未必知道真正的业务动机。高质量 PR 应明确写出问题、约束、不采用其他方案的原因,以及可验证的验收标准。

如果审查者必须先从代码反推意图,说明上下文交付已经失败。

原则三:根据风险分配审查强度

文案调整、内部工具修改、支付链路变更,不应接受完全相同的流程。

团队可以根据数据敏感度、影响用户数、可逆性、服务关键度和改动范围建立风险等级。低风险改动可以在满足组织策略的前提下降低人工审查强度;高风险改动则要求领域负责人参与,并采用更完整的测试和发布策略。

原则四:测试必须独立验证意图

如果代码和测试都由 Agent 生成,应增加独立校验:由人先定义关键性质和失败条件,或让不同流程从需求出发生成验收测试,再与实现对照。

重点不是“用了几个模型”,而是避免所有证据来自同一个初始假设。

原则五:把审查结果接回生产反馈

团队需要知道:哪些问题经常被 AI 预审发现,哪些缺陷只有人能发现,哪些事故绕过了全部检查。

这些数据可以反向调整风险规则、测试策略和人工审查重点。没有反馈闭环的 AI Review,只会不断制造评论;有反馈闭环的验证系统,才会逐步提高可靠性。

七、工程管理指标也必须随之改变

如果管理层继续用“提交次数”“代码行数”“PR 数量”衡量 AI 带来的生产力,很容易奖励上游产出、惩罚下游承担。

更值得关注的指标包括:

  • 从需求开始到安全上线的端到端周期;
  • PR 等待审查的时间与返工次数;
  • 不同风险等级改动的缺陷逃逸率;
  • 资深工程师用于审查的时间占比;
  • 上线后的回滚率、事故率与恢复时间。

这些指标共同回答的不是“AI 写了多少”,而是“团队更快、更稳地交付了多少价值”。

这也是此次趋势最重要的管理启示:不要把生成速度误当成交付速度,更不要把代码数量误当成生产力。

结语:AI 没有消灭软件工程,只是重新定价了它

当代码实现成本较高时,工程能力主要表现为能否把方案实现出来;当生成代码的边际成本下降,能力的重心就会更多转向定义问题、约束方案、验证结果和承担决策。

AI Coding Agent 越强,这种迁移就越明显。

代码审查负载上升的迹象,不只是一个等待更好工具解决的暂时故障。它更像一个结构性信号:软件工程的关键约束,可能正在从“敲出代码的时间”迁移为“判断代码是否值得信任的注意力”。

因此,下一阶段真正成熟的 AI 工程团队,不会追求让 Agent 生成尽可能多的 PR,而会建立一条更完整的可信交付链路:

先约束生成,再评估风险;用自动化覆盖确定性,用人类处理不确定性;最后以生产反馈校正整套系统。

当生成的边际成本持续降低,验证就会成为更重要的工程核心。


欢迎关注 AI觉醒观测者,持续追踪 LLM 与 Agent 前沿动态。