HeadlinesBriefing favicon HeadlinesBriefing.com

为什么在AI时代,代码验证比以往任何时候都更重要

ByteByteGo •
×

为什么在AI时代,代码验证比以往任何时候都更重要

给一个代理一个访问令牌,它会传播:进入上下文窗口,进入工具调用日志,进入它在步骤之间保留的笔记。每一份副本都可以从任何地方访问,即使在事后也是如此。Relay 将凭证保留在 Work OS 中。你的代理会命名用户,Work OS 会附加该令牌,对其进行刷新,并仅将其释放到允许列表的主机上。被劫持的代理会话是一个可以被杀死的活过程。了解它是如何工作的 → 代码正常执行与代码真正安全可信之间的差距正在以惊人的速度扩大。多年来,编写代码是一个缓慢、昂贵的步骤,而对其进行审查则是一个较小的、在最后进行的任务。随着 AI 辅助编码的兴起,这种平衡正在转变。AI 工具现在可以在几秒钟内创建一个可工作的函数,在几分钟内创建一个完整的功能。团队每个月都能编写更多的机器生成代码。换句话说,生成代码现在很快且相对容易,而代码验证则是更难的部分。审查者仍然需要阅读更改,理解它,并决定它是否应该进入生产环境。事实上,编写的代码越多,就需要验证的代码就越多。我们最近有机会与 Sonar 的 CTO Andrea Malagodi 交谈(该公司构建了市场上最广泛使用的代码验证软件之一)。他提供了关于代码验证的深刻见解,特别是在 AI 背景下,以及 Sonar 如何适应最近的变化。在这篇文章中,我们将了解代码验证是如何工作的,为什么 AI 生成代码的兴起给它带来了更大的压力,以及 Andrea 对未来可能是什么提供的极其有用的见解。代码生成与验证之间的转变在我们查看数据时非常明显。最清晰的信号来自 Google 的 DORA 研究,这是一项对数千个团队如何构建和发布软件进行的长期研究。他们的最新研究发现,随着团队采用更多 AI,交付稳定性下降。对 AI 生成代码的信任度保持低位,三分之以上的开发人员报告对这些工具产生的产出缺乏信心 [2]。换句话说,代码编写速度的提升进一步带来了进一步的压力。 METR 研究小组进行的一次受控试验给出了类似的指示。其参与者是正在从事自身成熟项目的经验丰富的开源开发人员,每个任务都被随机分配允许或禁止使用 AI 工具。开发人员预计 AI 会让他们快速约 25%。然而,结果完全不同。使用 AI 辅助的任务花费了约 19% 的更多时间 [3]。而且,这发生在开发人员内部认为 AI 帮助他们更高效之后。结果发现,相当多的额外时间用于提示、等待、阅读输出和修正它。为了公平起见,同一团队后来报告了一个更令人困惑的后续信号。这部分是因为开发人员更倾向于保留他们的 AI 工具 [4]。尽管如此,如果我们考虑这些结果,显然虽然 AI 确实增加了编写的代码量,但它也导致了更多的验证工作。那么,让我们首先了解什么是代码验证?代码验证是确保一段代码是否正确、安全且足够可维护以发布到生产环境的每一项检查的总称。换句话说,它是获得足够的信任将更改放在真实用户面前的工作。需要注意的关键术语是“获得”。这是因为信任是逐步建立的,而不是一次性授予的。把起草合同的任务作为类比。编写文字是这项任务的一部分。然而,审查、法律检查和签名将这些文字转化为人们真正可以依赖的东西。编写代码的方式也是如此。当一段代码离开编辑器并被提交到代码库时,它携带了关于功能的隐含主张。