将代码审查提前到代码编写之前

将代码审查提前到代码编写之前

💡 原文英文,约1400词,阅读约需5分钟。
📝

内容提要

代码审查正从合并前的传统模式转向更早的“意图驱动”审查。AI生成代码量激增,使逐行审查不再可行。团队应审查开发者的原始意图、验收标准及AI生成路径,而非代码本身。验证交给机器,判断和知识保留给人,通过构建“AI垃圾登记册”固化知识,实现规模化。

🔎

延伸解读

审查重心的转移

文章指出,代码审查的传统位置在合并前,但AI生成代码量激增后,逐行审查不再可行。审查重心应从代码本身转向开发者的原始意图、验收标准和AI生成路径。这要求团队在开发早期就捕获意图,并生成可审查的工件,如规格说明和决策日志。这种转变并非取消审查,而是将审查从“读代码”变为“读意图”,使高级工程师的时间用在判断问题上,而非逐行检查。

三种实践路径

面对代码量激增,团队出现了三种应对方式:只审查规格说明并信任其余部分;审查所有工件但可能成为瓶颈;不审查代码而直接测试运行系统。这些路径反映了团队在效率与风险之间的权衡。文章强调,无论选择哪种方式,关键在于将验证交给机器,而将判断和知识保留给人,通过构建“AI垃圾登记册”固化知识,实现规模化。

知识固化的新机制

文章提出“AI垃圾登记册”的概念,通过挖掘历史审查评论、聚类并生成不变量候选,经人工批准后成为自动审查规则。这能将重复的审查意见转化为机器可执行的检查,减少人工重复劳动。同时,集体代码所有权因LLM需要上下文而得以实现,知识从个人头脑中转移到可被AI利用的形式,从而提升审查效率和知识共享。

Q&A

为什么传统的代码审查模式不再适用?

因为AI生成代码量激增,逐行审查变得不可行,而且代码审查被固定在合并前,成为唯一的审查点,无法适应现代软件开发的速度和规模。

什么是意图驱动开发?

意图驱动开发是指在代码生成之前,开发者明确表达意图,包括范围、排除项和验收标准,这些意图通常从与AI代理的交互中捕获,并生成规格说明等工件。

在意图驱动开发下,代码审查的重点应该放在哪里?

审查重点应从逐行代码转向审查开发者的原始意图、验收标准以及AI生成代码的路径,而不是代码本身。

为什么说验证交给机器,判断和知识留给人?

因为机器在验证方面更快更一致,而判断和知识对于学习和保留组织知识至关重要,所以验证由机器完成,而判断和知识保留给人。

什么是AI垃圾登记册?如何构建?

AI垃圾登记册是固化组织知识的一种方式,通过挖掘过去的审查评论,聚类并生成不变量供人工批准,每个不变量都是一个不再需要重复编写的审查评论。

代码审查提前到代码编写之前有哪些具体做法?

具体做法包括在生成代码时使用顾问或对抗性代理来捕捉反模式,以及使用工具如Aviator Verify来验证代码是否符合意图,而不是仅仅审查代码。

代码审查从合并前移到更早阶段,对团队有什么好处?

好处包括更有效地利用高级工程师的时间,保持知识共享功能,以及通过固化知识减少重复审查工作,实现规模化。

🏷️

标签

➡️

继续阅读