内容提要
本文讨论“vibe coding”(氛围编程)的弊端。作者指出,在大型代码库中,AI 生成代码虽快,但会打断开发者构建心智模型的过程,导致理解停滞。AI 像永不成长的初级程序员,常犯错且不反思,增加资深开发者审查负担。长期看,团队能力上限下降,代码质量受损,成本远超表面效率。
延伸解读
心智模型断裂的代价
作者指出,在大型代码库中,AI 生成代码会打断开发者构建心智模型的过程。传统编程中,编码与理解同步进行,而 vibe coding 将两者分离,导致开发者对代码库的理解停滞。这种断裂使得审查和纠错变得困难,因为开发者无法在编写过程中逐步深化对系统的认识,最终影响代码质量和团队效率。
AI 的“初级程序员”困境
作者将 AI 比作永不成长的初级程序员:它产出大量代码,但从不提问、自信地编造、不记忆教训、不反思错误。与人类初级程序员不同,AI 无法通过经验成长,每次会话都从零开始,导致资深开发者需要反复纠正相同问题。这种持续的审查负担最终会耗尽资深开发者的精力,降低团队的整体纠错能力。
上下文窗口的局限与隐性约束
AI 规划受限于上下文窗口,无法看到代码库中的隐性约束,如历史事故后的异常处理、字段非空的原因、为特定客户设计的端点等。这些约束存在于开发者头脑、聊天记录和提交信息中,AI 无法感知,导致计划看似合理却遗漏关键信息。作者观察到模块在一年内被重写三次,每次局部正确但全局错误,正是这一局限的体现。
Q&A
为什么在大型代码库中,氛围编程会打断开发者的心智模型构建?
在大型代码库中,氛围编程让AI代理代替开发者编写代码,开发者只负责计划和审查,导致他们无法通过编写代码来测试假设和加深对系统的理解。心智模型的构建与编码被割裂,开发者的理解停滞,而代码库却在不断变化。
氛围编程中,AI生成的计划为什么可能基于错误的假设?
AI生成的计划受限于上下文窗口,无法看到整个代码库,也无法理解开发者脑中的不变量、提交信息中的推理或历史讨论中的约束。因此,计划可能基于错误的假设,一旦批准,错误的前提可能成为后续开发的基础。
作者将AI比作初级程序员,两者有何不同?
AI像初级程序员,但比人类初级程序员更糟糕:它写的代码行数更多,从不提问,自信地编造,不记得之前的教导,也不反思错误。人类初级程序员会成长并融入团队,而AI每次会话都从零开始,修复的问题可能再次出现,审查负担全部落在资深开发者身上。
氛围编程对资深开发者的长期影响是什么?
长期来看,资深开发者的反思时间被消耗,心智模型停止形成,工作变得浅薄,团队的能力上限会逐渐下降到与AI相当的水平。资深开发者被审查和争论循环拖垮,团队的纠错能力减弱。
为什么说氛围编程的成本不是它产生的坏代码?
因为坏代码是可以修复的,真正的成本是开发者监督AI时发生的变化:反思时间被吞噬,心智模型不再形成,导致开发者能力下降,团队整体水平降低。
在大型单体应用中,氛围编程的效率优势为何消失?
在大型单体应用中,AI生成代码的速度优势被抵消,因为开发者需要花费大量时间审查、争论和纠正AI的错误,而无法通过编码来构建心智模型。工作从编码转变为审查和纠错,效率反而降低。