为 AI 明星开发者收拾残局

AI 明星的崛起与“垃圾末日” (Slopocalypse)

AI 辅助开发正在催生新一代的“明星”开发者,他们能以空前的速度交付功能,但往往以牺牲可维护性和架构完整性为代价。这种现象正导致一场“垃圾末日”——即一个未来,成千上万通过“氛围编程” (vibe-coding)(依赖 LLM 输出而缺乏深度理解)编写的应用将需要大规模、高成本的清理工作。

虽然 AI 可以加速通往工作原型阶段的初始路径,但它往往在开发者解决设计时问题之前,就催促他们进入运行阶段。正如一位贡献者所指出的:“在运行时修复代码比在编译时修复更贵,而在编译时修复又比在设计时修复更贵。不幸的是,AI 正尽可能快地将人们推向运行时。”

氛围编程的技术债

在缺乏严格人类监督的情况下,由 LLM 生成的代码经常表现出系统性不稳定和设计拙劣的模式。这种“AI 垃圾”的现实案例包括:

  • 资源低效: 由于依赖项臃肿和结构未优化,导致应用需要过量的内存(例如,编译时需要 10GB)。
  • 模糊的数据流: 逻辑极其难以追踪,以至于看起来像是“掩盖谋杀现场”,使得逆向工程设计意图几乎变得不可能。
  • 维护死锁: 一种依赖关系,即开发者不得不依赖编写了那段拙劣代码的同一个 AI 来进行维护,因为原始逻辑对于人类来说过于复杂或过于怪异,难以解析。
  • 运维噪音: Git 仓库中充斥着开发日志和数千个 lint 错误,这标志着缺乏基本的工程纪律。

“明星”谬误:速度 vs. 生产力

感知速度(功能交付有多快)与实际生产力(代码的长期价值和稳定性)之间存在着关键的区别。

对团队动态的影响

忽视架构标准的快速交付型开发者往往会给队友带来负面的乘数效应。一位前“明星”开发者在意识到这一点后反思道:

“我意识到这并不是因为我的生产力比普通人高 10 倍;而是因为我的工作方式让周围的普通人生产力降低到了 1/10。”

简历驱动开发

有人认为,“明星”人设往往是“简历驱动开发”的掩饰,工程师们通过实现一些生僻的框架、半成品的抽象或复杂的微服务来提升自己的资历,而不是高效地解决业务问题。当原始作者离开公司时,这会导致“维护失败”,留下一个需要花费数年时间和数百个 pull requests 来清理的 codebase。

缓解 AI 生成技术债的策略

为了防止不可维护的 AI 代码堆积,经验丰富的工程师建议采取几种架构和流程导向的保障措施:

模块化架构与严格的接口

采用模块化、类似微服务的模型并定义清晰的接口,可以防止 AI 生成的“面条代码”变成一个统一的、单体式的、不稳定的庞大整体。通过将拙劣但功能正常的代码进行“防火墙化”隔离,团队可以隔离风险并在不更换整个系统的情况下替换有问题的模块。

人机协同评审 (Human-in-the-Loop Review)

与其将 AI 视为开发者的替代品,不如将其视为一个需要严格评审的工具。一些开发者使用专门的 AI agent 来维护一个合理的模型,这些 agent 会在提前计划阶段和代码评审阶段再次进行评审,最后由人类进行最终确认。

重视手艺而非数量

人们越来越担心软件正变得像“快时尚”一样“一次性”化。然而,支持长期业务流程的软件不能是消耗品。行业必须从重视“喷涌而出”的代码行数,转向重视可维护、可靠且优雅的结构。

清理工作的经济机会

矛盾的是,AI 生成的技术债正在为专门的清理专家创造一个利润丰厚的市场。由于“氛围编程”编写的工具往往“如果你不知道自己在做什么,就几乎无法修复”,资深工程师正在“去垃圾化” (unsloppifying) 代码库的过程中发现高价值的机会——本质上是向解决由 AI 明星开发者造成的混乱而收取高额费用。

Sources