按 "Enter" 键跳过内容

我们终将退出代码的舞台

到底什么是代码?

它从来都不是目的,只是达成目标的一种方式。

我们习惯于亲手写出每一行代码,然后一行行读、一行行审,仿佛只有我们能读懂的、看上去合理的代码,才是可靠的。然而即便如此,我们也从来没法保证它完全没有 bug、能完全达到预期。

AI 写的代码看不懂?不好说话?长得奇怪?但如果它跑得通、测得过、达得了你要的目标,为什么不接受?

这一切听上去也许“激进”,但其实只是技术历史的常识延续。

从汇编到 C,再到 Python,再到 prompt,我们一直在走向抽象化,把人一步步从实现细节中解放出来。AI,不过是让这一步走得更彻底一点。

这篇文章就是来自一个坚定的“降临派”的思考:AI 写代码是不可逆的未来,我们所处的,是一次彻底的迁移期。

现在的任务不是讨论要不要用 AI,而是如何全面转向

我们现在正在一个特殊的阶段:大部分老项目并不是 AI native 的,而是手写代码的历史遗产。AI 工具的加入不是从零开始,而是“半路接管”。这就是问题复杂的原因。

但这只是一个过渡。最终所有项目都会变成 AI native,从第一行代码就是 AI 写的,从第一天就是 prompt 驱动的,到那时人们不会再为“AI 写代码”这件事感到困惑,就像我们今天不会怀疑编译器会不会乱翻译一样。

所以,我们现在唯一该做的,是加速这一过渡。

我主张:

  • 项目中的所有代码贡献者都应该尽快转向 AI 工具(Copilot、Claude Code、Cursor、Codeium 等都可)
  • 不要谨慎使用,要主动深用,把 AI 工具当作主力,而不是插件
  • 管理者也要转变思维:不再靠人工 review 控制一切,而是建立 AI 可控的质量机制

第一层防线:让 AI 先写 UnitTest,再让它改代码

举个我们自己项目中的真实例子。

一个运行多年的老模块,没人维护,代码没有文档,甚至原开发者已经离职。一个新同学要来改点逻辑,几乎寸步难行。

我们采用的方法是:先让 AI 去写 UnitTest,把模块边界定义清楚。

AI 可以很快理解代码结构,生成高覆盖率测试,尤其适合黑盒式校验。在这个基础上再让 AI 去改逻辑,最终只要测得过、跑得通,就能合并。

这背后的思想是:代码不是让人“看懂”的,是要能“通过验证”的。

第二层防线:打开所有 lint,强制统一代码风格

AI 写的代码风格是随机的。

Claude 喜欢缩进,Copilot 喜欢长变量名,Cursor 会引用很多旧 pattern。

唯一的出路是:打开你项目中所有 lint 规则,一个都不留。

你以前可能觉得“每行不得超 120 字符”是烦人的约束,但在现在的 IDE(如 VSCode)里,左右都是插件、AI 工具,中间只有一点点区域能看代码。120 字符刚刚好。

统一风格之后,再五花八门的模型产出也会被强制对齐。

第三层防线:构建完整的 AI 驱动流水线

不要幻想人工 Review 能拦住所有 AI 问题。

你需要的是一条自动化的流水线:

  1. AI 生成代码与修改(Claude、Copilot)
  2. 自动生成 UnitTest(Diffblue、Codeium)
  3. 严格 lint(ktlint、detekt、ESLint)
  4. AI Review(CodeAnt、Qodo)
  5. CI/CD 统一测试并上线

AI 写,AI 测,AI 审,最后人来定夺。

管理者的职责,不是挡住 AI,而是设计一套能约束它的流程。

那么人做什么?

人不再是造轮子的,而是设计水坝的。

你需要定义 prompt 框架,建立贡献规范,设置质量底线,构建一套流程让各种模型都能输出可信的结果。

你是 orchestrator,而不再是 executor。

你负责让这次技术的迁移发生。

我们终将进入 AI native 的世界

过渡阶段是混乱的。人类代码、AI patch、不同模型交叉编辑、风格不统一、上下文信息缺失……

但终点是确定的:所有代码将由 AI 写、由 AI 维护、由 AI 审查。人只是设定目标和期望。

到那时候,写代码这件事,将不再是人类技能的核心。它会像过去的汇编、指针、手写内存一样,留在历史里。

而你现在的责任,是让那一刻顺利到来。