内容提要
AI生成代码导致资深工程师审查负担过重:代码量大、缺乏意图说明,且看似合理却暗藏错误。建议将重复反馈规则化、保留生成意图作为验收标准,并衡量真正防止劣质代码的工作,否则核心工程师可能因不堪重负而离职。
延伸解读
AI代码审查的认知负担
文章指出,AI生成代码缺乏人类编写时的意图说明,审查者需要从diff中逆向工程意图,这是一种完全不同的认知任务。同时,AI代码看似合理却暗藏错误,如过度工程、无视约定、自信幻觉和货物崇拜模式,这些错误难以在审查中发现,因为需要理解代码的预期目的而非仅其行为。
将重复反馈转化为自动化规则
文章建议,团队应分析最近100条PR评论,将其分类为确定性、可执行测试或真正判断。数据显示约45%是确定性的,30%可通过执行测试捕获,仅25%需要人工判断。这意味着四分之三的审查反馈可以编码为规则或检查,从而减轻审查者负担。
保留生成意图作为验收标准
文章强调,生成代码的提示和代理会话包含了意图,但大多数团队丢弃了这些信息。应将其捕获并结构化为验收标准,明确变更内容、范围外事项和验证方法。这样审查者可以专注于评估决策和权衡,而非逐行阅读代码,从而提升审查价值。
衡量真正防止劣质代码的工作
文章警告,仅衡量AI采用率和代码行数等指标无法反映资深工程师承担的审查负担。这些仪表盘看不到逆向工程意图或捕获货物崇拜模式的努力。如果继续以吞吐量为导向,核心工程师可能因不堪重负而离职,最终导致团队交付更快但故障更多。
Q&A
为什么AI生成的代码会让资深工程师的审查负担过重?
AI生成代码时缺乏意图说明,审查者需要从diff中逆向工程意图;代码看似合理却暗藏错误,且常出现过度工程、无视约定、自信幻觉和货物崇拜模式,导致审查认知负担大。
AI生成的代码有哪些常见问题?
常见问题包括:过度工程(简单问题生成复杂抽象)、无视约定(忽略团队命名、错误处理等规范)、自信幻觉(调用不存在的API、使用废弃方法)、货物崇拜模式(复制结构但不理解原因)。
如何将重复的代码审查反馈转化为自动化规则?
分析团队最近100条PR评论,分类为确定性(45%)、可执行测试(30%)和需判断(25%)。对重复出现的评论,将其编码为不变量(如AST检查),一旦规则化就无需再人工审查。
如何保留AI生成代码的意图以辅助审查?
捕获生成代码时的提示和代理会话,将其结构化为验收标准:变更内容、范围外事项、如何验证成功。审查者通过阅读验收标准来评估决策和权衡,而非逐行扫描代码。
为什么用AI审查AI代码效果不好?
同一模型审查自己的代码会共享盲点;增加对抗代理和多步流程会让工程师变成“机器人保姆”,花费时间配置和调整过滤器,而非真正解决问题。
代码审查负担过重对团队有什么影响?
资深工程师不堪重负,部分人拒绝审查AI代码,甚至离职(有的去工具更好的团队,有的彻底离开工程行业)。团队可能面临核心工程师流失,导致发布更快但故障更多。
如何衡量真正防止劣质代码的工作?
不应只衡量AI采用率、代码行数和PR合并量,这些指标无法体现资深工程师逆向工程意图、构建防护栏等防止劣质代码的工作。应衡量那些实际阻止劣质代码进入生产的工作。