摘要
1) 一句话总结 Vibe Coding(AI 辅助编程)的最佳实践是采用敏捷(Agile)的版本迭代模式,通过每次交付可独立稳定运行的完整版本来保持项目可控,避免一次性生成庞大且无法维护的半成品。
2) 关键要点
- Vibe Coding 必须采用敏捷(Agile)迭代模式,每次开发一个完整且能稳定运行的版本。
- 避免将完整需求一次性发给 AI(如 Claude Code)并要求其按模块一次性开发完毕。
- 无论是 AI 还是人类,都无法一次性掌控大量模块的协作与各个模块自身的稳定性。
- 每个版本需具备完整功能、可独立运行,并完成测试,确认稳定后再进入下一个模块的开发。
- 以 ERP 系统开发为例,建议按功能拆分版本逐步迭代:
- v0.1:搭建可运行的 Nextjs/TanStack 基础程序,并在 MySQL 中创建数据表及完成读写测试。
- v0.2 - v0.3:逐步实现用户注册、登录与注销功能。
- v0.4 - v0.7:逐步实现仪表盘(Dashboard)页面,以及产品(Products)数据库访问、列表显示和增删改查功能。
3) 风险与不足
- 一次性开发庞大项目会导致产出物不可控、无法满足需求,甚至完全无法运行。
- 试图将一次性生成的半成品优化为真正的产品是不现实的,专业程序员也难以维护,最终往往只能“推翻重写”。
正文
不知道你看到图 1 的 3 种模式有何感想,我只想说现在你用 AI 写代码,千万不要用第 1 和第 3 种模式,只能采用第 2 种模式!
Vibe Coding 的最佳实践仍然是 Agile 的版本迭代模式,而不是一次性完成一个庞大的无法运行和维护的半成品,像图中第三种先做个不伦不类的东西出来,想优化成真正的产品,是不太现实,即使对于专业程序员来说也会相当有挑战,否则程序员们也不会那么热衷于“推翻重写”!
举个例子,比如你要做一个 ERP 系统,你把完整需求一次性发给 Claude Code,也很专业的要它拆分成模块,再让它按照模块一个个去开发(像图2那样),但这样做出来的东西也基本上是不可控的,做出来的东西基本上无法满足需求的甚至无法运行的。因为无论是 AI 还是人类,都无法掌控这么多模块的协作,更何况还要保障每一个模块自身的稳定性。
那么更好的做法是什么呢?
还是要像图 1 中 Agile 的做法那样——每次做一个完整的能稳定运行的版本出来。
举例来说,你要做一个 ERP 系统,分成若干版本来迭代,每一个版本都是可以独立稳定运行的,举例来说(仅供参考):
-
v0.1: 一个可以运行的 Nextjs/TanStack 程序,有欢迎页面,可以跳转
-
v0.1: 实现 users 相关数据库访问功能,在 mysql 中创建 users 表,实现 users 表的读写功能,添加读写功能的测试代码
-
v0.2: 实现用户注册的网页,连接 users 相关数据库方法,能写入注册用户信息到数据库
-
v0.3: 实现用户登录、注销的网页功能
-
v0.4: 实现简单的 dashboard 页面
-
v0.5: 实现 products 相关数据库访问功能,写功能代码和测试
-
v0.6: 实现 products 在 dashboard 的管理页面,能显示列表
-
v0.7: 实现 products 的添加、编辑和删除功能
-
…
这里就不一一列举,核心还是每一个版本功能是完整的,可以独立运行的,测试稳定后再下一个模块。
这样你基本可以保证你做出来的是可以掌控的,而不是一次性做出来一个几乎无法维护的庞大半成品。