简介:AI 编程让代码产能倍增,人工评审却成为新瓶颈,“放弃 Review”的声音开始出现。本文论证这为何是个陷阱:信息不对称、测试失真与质量债复利会层层反噬。文章提出一套分层评审体系:自动化门禁守规程、测试体系守行为、人工评审聚焦架构与业务语义,并给出小批量生成、信任分级、业务嗅觉培养与果断重写等可落地实践,帮助团队在提效的同时守住质量底线。
过去一个工程师一天的净产出是几百行有效变更,如今借助智能编程工具,一个下午生成上千行代码并不稀奇。产出端从“天”提速到“分钟”,验证端却仍停留在“小时到天”,瓶颈自然出现。面对瓶颈,一个常见但危险的结论是:既然 Review 跟不上,那就砍掉 Review。
这个推理把“瓶颈”误判成了“障碍”。流水线上的质检环节变慢,正确解法是改造质检的效率与策略,而不是取消质检——否则质量问题不会消失,只会后移到生产环境,由线上事故、用户投诉和运维成本来结账。
原始讨论中有一个传神的比喻:vibe coding 像一场“崇祯模拟器”。下属个个自称忠臣,汇报时处处顺利,上了战场却一触即溃,溃了还要你追加投入去修。这个比喻精确刻画了失控路径,值得认真拆解。
AI 对自己输出的描述天然偏乐观。它会告诉你“已完成、已覆盖边界情况”,但实际可能只覆盖了主干路径。更微妙的是,模型是“顺从型下属”:当你表达不满时,它倾向于顺着你的方向打补丁,而不是坚持指出根因。“越骂越拉胯”并非玄学——被负面反馈驱动的迭代,常常以叠加补丁的方式让代码更脆弱。评审缺位时,这层偏差没有任何纠偏机制。
单元测试通过、冒烟测试通过,只能证明“这段代码在其声明的能力范围内行为符合预期”,不能证明:架构边界没有被破坏(例如底层模块反向依赖了上层)、与既有系统的契约保持一致、性能与并发等横切属性达标。AI 生成代码尤其擅长“局部像回事”:每个函数单看都合理,拼在一起却可能是一张互相缠绕的依赖网。
每一段未经审视的代码,都在为未来的修改设置路障。重复模式、冗余抽象、不一致的错误处理策略会快速累积。十天之后想改一个字段,发现要动二十个文件——这时评审的成本不是“没做”,而是被加倍索要。屎山不是一天垒成的,它是无数次“先跑起来再说”的复利。
传统代码评审流程建立在三个假设之上,而它们如今同时失效:
所以结论应当正式化为一句话:不是 Review 没用,而是低效的 Review 没用;评审资源必须从“逐行校对”转向“风险加权”。
核心思想是九个字:机器守规程,人守架构。把可以机械判定的全部交给自动化,把人的注意力只花在机器判不了的地方。
静态检查、格式规范、依赖漏洞与许可证扫描、圈复杂度与重复率阈值,这些规则确定、无需语义理解的项目,应在提交瞬间以秒级反馈完成。它们不该消耗任何人的注意力。
AI 特别擅长“让测试通过”,要防两类退化:一是循环论证——让同一个模型既写实现又写测试,测试可能只是复述实现;二是覆盖率游戏——断言空洞、只测正常路径。对策是:实现与测试分离生成,关键断言由人提出;测试代码本身也纳入评审范围,重点看断言质量而非行数;定期用变异测试的思路抽查测试有效性——人为注入缺陷,看测试能否抓住。
人的时间只花在三类问题上:模块边界与依赖方向是否被破坏;接口契约、数据模型、错误处理与降级策略是否合理;业务语义是否正确——这个字段到底该不该为空,这个状态机有没有漏状态。
评审效率的最大杠杆是控制单次变更规模。与其让 AI 一次生成两千行再评审,不如按“可独立验证的最小单元”切分:先让 AI 产出接口定义与契约,人评审通过后再生成实现。粒度小了,人的上下文负担小了,出错后的回滚成本也小了。
| 代码类型 | 风险级别 | 评审策略 |
|---|---|---|
| 脚手架、样板、配置模板 | 低 | 自动门禁 + 抽查 |
| 常规增删改查、表单逻辑 | 中 | 门禁 + 轻量人工 |
| 核心域逻辑、资金、权限、并发 | 高 | 设计先行 + 强制资深评审 |
评审永远有漏网之鱼。灰度发布、监控告警、一键回滚是最后一道防线。AI 提效的团队更应补齐发布基建,因为出错频率不变时,出错产量会被同步放大。
原文点出一个关键能力:长期业务累积的嗅觉,能提前嗅到哪里可能不对,能区分什么是小问题、什么是大问题。这正是评审者不可替代性的来源,可以拆解为三项:
对个人的建议:维护事故复盘笔记、参与需求评审而非只看代码、定期重读系统里最老的模块。对团队的建议:把“哪里容易坏”沉淀成评审检查单,而不是留在老员工脑子里。
原文说“管他十万还是一百万行代码,该抄家就抄家”。工程上可以更冷静地表述为:预设重写触发条件,避免沉没成本绑架决策。可判定的信号包括:
重写也不必大开大合,更稳妥的路径是绞杀式迁移:新旧并存、按模块灰度切换、随时可回退。
下面用一份伪配置展示分层门禁如何编排(示意性质,非任何具体产品的语法):
review_policy:auto_gate: # 提交即跑,秒级反馈- lint_and_format- dependency_audit- structural_metrics:max_cyclomatic_complexity: 15max_duplication_ratio: 0.05test_gate: # 分钟级验证- unit_tests: { min_line_coverage: 0.7 }- contract_testshuman_review: # 小时级,聚焦高风险force_paths: ["core/**", "auth/**", "billing/**"]force_when:changed_lines_gt: 400touches_public_api: truefocus: [architecture_boundary, error_handling, business_semantics]release_gate:- canary- rollback_plan_required
回到最初的问题:AI 写码太快、Review 不过来,要不要违背祖训放弃 Review?答案是:AI 没有让 Review 过时,而是让“低质量 Review”过时了。逐行校对的时代结束了,但架构判断、业务语义把关、风险分级与果断取舍的时代才刚开始。真正的祖训从来不是“必须逐行看代码”,而是“没有人比流程和验证更值得信任”。把规程交给机器,把判断留给自己,把重写的勇气写进制度——这才是 AI 时代评审体系的正确打开方式。