一次 Vibe Coding 实践
最近尝试了一种新的开发方式:Vibe Coding。
简单来说,它的核心不是“写代码”,而是“描述需求”。开发者的角色从“实现者”,转变为“产品经理 + 架构设计者”,而具体实现则交给大模型完成。
这篇文章不重点讲项目实现,而是总结:如何更好地进行 Vibe Coding。
什么是 Vibe Coding
可以把 Vibe Coding 理解为一种新的开发流程:
- 明确问题
- 描述需求
- 让 AI 生成实现
- 持续修正与迭代
它并不是“让 AI 自动完成一切”,而是:
用更高质量的输入,换取更高质量的输出
Vibe Coding 的关键原则
以下是这次实践中总结出来最重要的几点。
1. 不要一开始就写代码
很多人一上来就问 AI:
“帮我写一个 XX 系统”
通常结果都不理想。
更合理的方式是:
- 先让 AI 帮你整理需求
- 生成一份 PRD(产品需求文档)
例如:
我想做一个论文管理系统,请帮我输出一份完整的 PRD,包括核心功能、用户流程、数据模型建议
这样做的好处是:
- 思路更清晰
- 减少后期返工
- 更容易拆分任务
2. PRD 必须人工参与修改
AI 生成的内容通常“看起来完整”,但一定存在问题:
- 功能冗余或缺失
- 逻辑不符合实际使用
- 没有考虑边界情况
你需要做的是:
- 删除不必要的功能
- 明确核心流程
- 补充关键细节
Vibe Coding 并不是“放手”,而是“更高层次的控制”。
3. 技术选型必须自己决定
如果完全交给 AI,常见问题包括:
- 技术栈混乱
- 引入不必要的复杂度
- 不符合个人或团队习惯
建议明确以下内容后再开始:
- 后端语言与框架
- 数据库类型
- 存储方案
- 是否接入 LLM 以及选择哪一个
原则是:
你负责做选择,AI负责执行
4. 在写代码之前先设计结构
这一点非常关键,但也最容易被忽略。
在生成代码之前,建议先让 AI 输出:
- 项目目录结构
- 模块划分
- 数据库设计
- 核心接口定义
例如:
基于上述 PRD,请帮我设计一个 Spring Boot 项目的目录结构和模块划分,并给出主要实体类和数据库表设计
这样可以显著减少后期重构成本。
5. Prompt 的质量决定结果的上限
Vibe Coding 本质上是 Prompt Engineering。
一个好的需求描述应该尽量具体,包括:
- 输入是什么
- 输出是什么
- 数据来源
- 约束条件
- 是否有示例
对比:
模糊描述:
帮我写一个分类功能
清晰描述:
实现一个论文分类功能:- 输入:论文 abstract 文本- 输出:多个分类标签- 分类来源:数据库中的 category 表- 要求:支持多标签返回
差别会非常明显。
6. 拆分任务,而不是一次性生成
不要试图一步生成整个系统。
更推荐的方式是逐步推进:
- 数据库设计
- 后端基础框架
- 单个模块实现(如上传)
- 核心逻辑(如分类)
- 前端交互
拆分任务可以:
- 提高正确率
- 更容易定位问题
- 更方便调整方向
7. 把 AI 当成“初级工程师”
一个很有用的心态是:
把 AI 当成一个执行力很强,但需要明确指令的初级工程师
这意味着:
- 你要给清晰任务
- 你要做代码评审
- 你要控制整体架构
而不是完全依赖它的“自动发挥”。
8. 迭代比一次生成更重要
第一次生成的代码:
- 往往不完整
- 可能存在错误
- 风格不统一
关键在于不断迭代:
- 指出具体问题
- 要求局部修改
- 逐步收敛到可用状态
一个简单实践项目
在上述方法的基础上,我做了一个小项目:论文自动分类与代码关联系统。
这个系统的核心思路是:
- 上传论文 PDF
- 自动抽取摘要内容
- 调用大模型进行多标签分类
- 将论文与对应的代码仓库进行关联管理
在实现过程中,一个比较关键的点是:通过“研究方向 + 分类描述”来增强提示词,从而提升分类效果。这也体现了 Vibe Coding 中“描述清楚上下文”的重要性。
项目地址
如果你对这个项目感兴趣,可以在这里查看源码:
https://github.com/sgly333/VibeCoding/tree/main
如果对你有帮助,欢迎点一个 Star。