内容提要
代码审查正从合并前的传统模式转向更早的“意图驱动”审查。AI生成代码量激增,使逐行审查不再可行。团队应审查开发者的原始意图、验收标准及AI生成路径,而非代码本身。验证交给机器,判断和知识保留给人,通过构建“AI垃圾登记册”固化知识,实现规模化。
延伸解读
审查重心的转移
文章指出,代码审查的传统位置在合并前,但AI生成代码量激增后,逐行审查不再可行。审查重心应从代码本身转向开发者的原始意图、验收标准和AI生成路径。这要求团队在开发早期就捕获意图,并生成可审查的工件,如规格说明和决策日志。这种转变并非取消审查,而是将审查从“读代码”变为“读意图”,使高级工程师的时间用在判断问题上,而非逐行检查。
三种实践路径
面对代码量激增,团队出现了三种应对方式:只审查规格说明并信任其余部分;审查所有工件但可能成为瓶颈;不审查代码而直接测试运行系统。这些路径反映了团队在效率与风险之间的权衡。文章强调,无论选择哪种方式,关键在于将验证交给机器,而将判断和知识保留给人,通过构建“AI垃圾登记册”固化知识,实现规模化。
知识固化的新机制
文章提出“AI垃圾登记册”的概念,通过挖掘历史审查评论、聚类并生成不变量候选,经人工批准后成为自动审查规则。这能将重复的审查意见转化为机器可执行的检查,减少人工重复劳动。同时,集体代码所有权因LLM需要上下文而得以实现,知识从个人头脑中转移到可被AI利用的形式,从而提升审查效率和知识共享。
Q&A
为什么传统的代码审查模式不再适用?
因为AI生成代码量激增,逐行审查变得不可行,而且代码审查被固定在合并前,成为唯一的审查点,无法适应现代软件开发的速度和规模。
什么是意图驱动开发?
意图驱动开发是指在代码生成之前,开发者明确表达意图,包括范围、排除项和验收标准,这些意图通常从与AI代理的交互中捕获,并生成规格说明等工件。
在意图驱动开发下,代码审查的重点应该放在哪里?
审查重点应从逐行代码转向审查开发者的原始意图、验收标准以及AI生成代码的路径,而不是代码本身。
为什么说验证交给机器,判断和知识留给人?
因为机器在验证方面更快更一致,而判断和知识对于学习和保留组织知识至关重要,所以验证由机器完成,而判断和知识保留给人。
什么是AI垃圾登记册?如何构建?
AI垃圾登记册是固化组织知识的一种方式,通过挖掘过去的审查评论,聚类并生成不变量供人工批准,每个不变量都是一个不再需要重复编写的审查评论。
代码审查提前到代码编写之前有哪些具体做法?
具体做法包括在生成代码时使用顾问或对抗性代理来捕捉反模式,以及使用工具如Aviator Verify来验证代码是否符合意图,而不是仅仅审查代码。
代码审查从合并前移到更早阶段,对团队有什么好处?
好处包括更有效地利用高级工程师的时间,保持知识共享功能,以及通过固化知识减少重复审查工作,实现规模化。