这种规律在 2023 年和 2024 年采用编程智能体的团队中几乎普遍存在。第一个月,效率翻倍。第三个月,管理层把生产力指标拿出来,作为 AI 投资回报的证据。到了第十二个月,工程团队有一半的代码库已无法向新员工解释清楚,重构成本高得令人望而却步,工程师花在调试 AI 生成代码上的时间,比他们手写这些代码所需的时间还要多。
这不是一个关于 AI 代码暗中存在缺陷的故事。这是一个关于 AI 生成代码的质量特征如何系统性地瓦解团队已有的组织实践的故事——以及这些实践在技术债务复利失控之前需要如何改变。
令人迷惑的质量特征
AI 生成的代码有一种独特的质量签名,能够欺骗大多数代码审查流程。在函数层面,代码看起来非常出色:格式整洁、命名一致、结构清晰。审查者扫一眼某个方法或类,会得出"这是扎实的工作"的结论。
问题出现在模块和系统层面。AI 智能体的上下文窗口有限,对三次会话前做出的架构决策也没有持久记忆。当代码库中已经有一个使用某种模式的 UserRepository,而智能体开始新的会话时,它可能会生成一个使用不同模式的 UserStore——因为它不知道第一个的存在。经过数十次这样的会话,你会积累出针对相同问题的并行解决方案、不一致的抽象层,以及命名约定因文件生成时间而异、而非源于任何连贯设计的混乱局面。
GitClear 对 AI 辅助代码库的纵向分析发现,代码重复率比 AI 出现前的基准高出四倍。卡内基梅隆大学追踪 807 个使用 Cursor 的代码库的研究发现,尽管初期效率有所提升,代码复杂度平均增加了 25%。AI 生成的 PR 中,格式不一致的情况出现频率是人工代码的 2.66 倍;命名不一致的情况出现频率几乎是人工代码的两倍。
简而言之:AI 代码实现了高局部连贯性和低全局一致性。这与代码审查本来要捕捉的失败模式恰恰相反。
代码审查如何沦为橡皮图章
传统代码审查是为一个 PR 以审查者能够处理的速度到来的世界而设计的。审查者可以在脑海中保留作者的推理过程,探究边界情况,并对架构决策提出异议——因为他们有足够的认知空间来做到这些。
当团队中的每个开发者都在使用 AI 智能体生成代码时,这个模型就崩溃了。PR 数量急剧增加。每个单独的 PR 看起来都比手写代码更整洁、更有把握——AI 没有状态不好的时候,不会产生马虎的格式,也不会犯那些会触发审查者怀疑的明显错误。在数量压力下,审查者从架构层面的审查转向只检查代码格式是否正确、测试是否通过。
两件事同时发生。首先,那些能捕捉到意图失误的审查("为什么这里要用三个独立的数据库查询,而一个连接查询就够了?")不再发生,因为审查者没有时间处理。其次,审查者内化了一个更低的标准——代码看起来没问题,CI 通过了,发布吧——他们即使在有时间深入审查时也会沿用这个标准。
一项调查发现,59% 的开发者报告说他们使用了自己并不完全理解的 AI 生成代码。如果作者都是如此,在时间压力下的审查者更是如此。
死代码积累问题
人类工程师对自己编写的代码有一种所有权感。当某个功能被废弃或某个工具函数不再需要时,存在一种社会压力——以及个人记忆——来清理它。作者知道它的存在,知道它是用来做什么的,并且对它的命运感到负责。
AI 生成的代码在这个意义上没有作者。当智能体生成一个最终用不上的辅助函数时,没有人会标记它待删除。静态分析警告不断积累。未使用的导入继续保留。整个工具类处于休眠状态,因为能够移除它们的重构永远不会发生。
一项对大量 AI 辅助开发代码库的研究发现,12 个月内静态分析警告增加了 18%,认知复杂度增加了 39%。代码重构——定义为移动或重构的代码行,而非新增的代码行——在 AI 辅助项目中从 2021 年占变更代码的 25% 下降到 2024 年的不足 10%。二十年来复制粘贴操作首次超过了移动操作。
代码库的增长速度超过了其被修剪的速度。每一次新的 AI 会话都在不断扩大的死代码和不一致的基础上叠加新代码。
入职危机
当一名新工程师加入一个已经使用 AI 智能体生成代码一年的团队时,他们面对的代码库有一个特殊属性:它没有连贯的"声音"。不同部分对相同问题使用不同的模式。有些抽象是高度面向对象的,另一些是函数式的,还有一些是过程式的。架构不是设计出来的——它是从数百次独立的 AI 会话中涌现出来的,每次会话内部连贯,但在全局上不一致。
对于一个试图建立系统工作原理心智模型的新工程师来说,根本无处着力。他们无法读一个模块然后推断其设计理念,因为根本没有统一的设计理念。他们也无法询问作者为什么选择某种方法,因为作者是一个 AI,那次会话的上下文早已不复存在。有经验的工程师用于在新代码库中快速定位的模式识别,在模式相互矛盾时完全失效。
实际结果是,在大量使用 AI 辅助的代码库中,入职时间不降反升——与团队从绿地起步测量效率提升时的预期恰恰相反。
复利式恶化轨迹
维护陷阱以几个阶段展开,现在已经可以相当精确地描述:
第 1-3 个月:效率显著提升。工程师更快地生成更多代码。PR 吞吐量增加。代码库快速增长。管理层为生产力指标欢欣鼓舞。
余下内容仅对会员开放。
会员可读完整内容 —— 每一个公开发布的观点背后,那些框架、决策与推理的全貌。
- 完整文章,包含未公开存档的部分
- 可落地的工作框架,附带权衡与决策依据
- 新文章抢先看,先于公开发布
随时取消 · 一次订阅,畅读全部
