2025 年 AI Coding 的发展变化很快,不光是 LLM 的 Coding 能力在变强,而且业界上在慢慢地演变出一些新的开发范式。身处在一个革新的洪流里,就会有一种莫名其妙的兴奋,你是见证者,也是参与者。
某种程度上,AI Coding 就相当于用自然语言编程,但是自然语言过于自由,自由代表什么?自由代表逻辑松散,逻辑松散就会带来很多隐性知识,也就是我们不知道自己知道,也不知道 LLM 不知道。都说 LLM 是 GIGO 的(Garbage In Garbage Out),但人脑也是懒惰的,就是很容易输入 Garbage 的。
所以从逻辑松散的自然语言到逻辑严谨的编程语言,我们必定要做点什么。
1、规范驱动开发。
这是眼下比较火的一种新的开发范式,通过 AI 来完善需求文档、技术选型,进而规划拆分任务,再逐步完成实现。且不说这些文档的生成的质量如何,也不说维护文档迭代文档是否又会成为另一个问题,但这是在强调一个完整的需求文档的重要性,完整是指有某种约束框架。
2、代码复杂度不应完全由 LLM 承担。
LLM 不确定的特性意味着做得越多错得越多,质量越不可控,生成时间越长,所以部分代码复杂度需要转移给程序员来承担,这体现在基础组件上,基础组件在某种程度上也是一种约束,会让 LLM 生成代码变得更加稳定。
3、LLM 不是幂等的。
同样一句输入,并一定能得到同样的代码生成,继而也不一定能有同样的执行结果。不过,执行结果可以通过测试来保证。以 AI 为主体的开发范式,测试驱动开发也许比以往更重要。
这些其实都是在对抗 LLM 的不确定性,用约束、用更加规范的开发方式来解决。
那么,AI Coding 会颠覆传统编程吗?可能不会,反而更需要传统软件工程总结下来的理论与实践,诸如 TDD、DDD、各种设计模式等