AI 摘要
Vibe Coding 中,如何提高开发效率
随着 AI 技术的发展,越来越多的开发者开始尝试 Vibe Coding ——也就是把 AI 当作“结对编程的伙伴”,通过对话的方式完成代码编写、调试和优化
一、现阶段主流 AI 工具对比
目前我常用到的 AI 模型有 GPT-5、Gemini 2.5(Pro/Flash)以及 Claude 4.x。不同工具各有优势,适合的场景也不一样。
| 工具 | 优势 | 适用场景 |
|---|---|---|
| GPT-5 | 语言理解和推理能力极强,支持复杂的多轮对话和跨领域问题;适合生成计划以及修复 BUG | 复杂项目、跨栈开发、需要较高逻辑推理的任务 |
| Gemini 2.5 Pro | 上下文记忆更持久,长对话能力强,适合规划大型项目 | 需要详细讨论和规划的长期开发 |
| Claude 4.x | 编码能力极强,且 UI 方面也非常不错。Plan 模式有助于结构化开发,代码逻辑清晰 | 需要详细规划、文档和代码整合的场景 |
补充:
作为全栈开发,GPT-5 往往能提供更强的逻辑和上下文理解,利用其强大的理解能力,在配合上 Claude 的 Plan 模式。做到 先规划在执行 的场景,这样的开发会很流畅
二、Vibe Coding 中常见问题
在实际项目中利用 AI 开发,新手往往会遇到包括但不限于以下问题:
1. Prompt 不清晰
- 案例:我在 xxx 项目中想加一个团队管理功能,直接对 GPT-5 说“帮我做一个团队系统”,它给我生成了一个全新的
Team模型和用户关联,但忽略了代码或者模板本身提供的如 Jumpstart 内置的组织/用户模型结构的功能。导致结果冲突很多,花了不少时间重构。重复造轮子
2. 功能过于宽泛
- 案例:我让 AI “帮我实现订阅功能”,它直接写了 Stripe 集成的控制器和视图,AI 可能会直接去帮你实现,但是确实按照了它的逻辑,如果你没有主动告诉 AI 你已经有部分实现的代码,那么大概率最终代码重复且冲突。
3. 缺乏计划阶段
- 案例:让 Claude 帮我“加一个发票模块”,Claude 写的代码看似完整,但路由、前端样式和 TailwindCSS 组件完全没有和前端模板对齐,导致的后果就是,同一个项目,像是不同的人在施工,参杂了各种冗余且复杂的代码。如果在一开始有计划的先让 AI 输出“发票模块所需的字段、数据库迁移、UI 组件和权限控制”,再进入编码,效率会更高。
4. 上下文管理不当
- 案例:在一次对话中不断添加新需求,比如“加多租户支持”“再加 API Key 管理”,但是没有维护一份需求文档。导致 GPT-5 忘记了我项目已经使用 Apartment gem 做多租户,后来又建议我用另外一种方案,冲突严重。
三、解决思路与效率提升方法
针对上述问题,总结出以下几条经验:
1. 提升 Prompt 质量
在 Vibe Coding 中,Prompt 就是需求说明书。AI 能输出什么样的结果,往往取决于你给它的输入。模糊的 Prompt 会让 AI 胡乱发挥,而一个精准的 Prompt 则能让 AI 像资深开发一样给出贴合需求的代码。
Prompt 的作用
- 明确边界:告诉 AI 该做什么、不该做什么,避免生成多余或冲突的代码。
- 统一风格:通过 Prompt 说明项目用的框架、依赖和代码风格(例如 Rails 8 + Hotwire + TailwindCSS + Flowbite),让 AI 始终保持一致。
- 减少返工:当 Prompt 已经涵盖关键细节,AI 生成的结果往往能直接使用,而不是需要开发者大规模重写。
为什么好的 Prompt 能事半功倍
- 降低沟通成本:把复杂需求转化成清晰的文字,AI 能一次性理解,大幅减少多轮交互。
- 提高输出质量:明确的上下文信息,让 AI 生成的代码更可维护,避免“屎山代码”。
- 提升团队效率:在多人协作时,标准化的 Prompt 能确保每个开发者和 AI 的交互保持一致,不会因为表达差异而导致风格混乱。
优秀 Prompt 的参考资源
在 GIthub 里,已经有不少优秀的 Prompt 示例可以直接拿来学习和套用:
- awesome-chatgpt-prompts
经典的 Prompt 收集库,涵盖开发、调试、代码审查等场景。 - prompt-engineering-for-developers
面向开发者的 Prompt 工程指南,详细解释了如何写高质量 Prompt,以及不同场景下的策略。
高质量 Prompt 不仅告诉 AI 做什么,还明确了 如何做、用什么技术做,结果往往能直接落地,极大提升效率。
2. 分解任务,逐步引导
在 Vibe Coding 中,最容易犯的错误就是“一股脑把需求抛给 AI”。这样做的结果往往是:AI 给出一大段貌似完整的代码,但和你的项目框架、依赖不兼容,甚至出现“屎山代码”。
解决办法有两个核心原则:
- 任务拆解:把大需求分成小模块,逐步实现;
- 计划先行:让 AI 在动手写代码前,先输出一份开发计划。
实践案例:文件下载并上传功能
模型设计
- 添加
FileRecord模型,字段包括user_id、file_name、status等 - 确认文件存储策略(本地/云存储)
- 添加
下载逻辑
- 在拿到文件直链后直接在本地服务器上使用 xxx 类中的方法进行下载。
上传逻辑
- 使用 Active Storage 进行上传操作
测试覆盖
- 编写 RSpec 系统测试,验证下载链接、上传逻辑和文件状态更新的正确性。
用 Plan 模式提升质量
在 Claude 或 GPT-5 中,可以直接让它先生成“计划”而不是代码,这样做的好处是:
- 减少返工:先验证方案对不对,再让 AI 编码;
- 方便协作:团队可以先讨论 AI 给的计划,然后再落地;
- 保持一致性:避免不同模块之间风格和实现不统一。
总结一句话:把需求拆小,并让 AI 先写“计划书”,再写“代码”。
这样 Vibe Coding 才能真正做到高效,而不是边改边救火。
4. 维护项目记忆
可以新建一个 project_context.md 文件,记录:
- 项目架构,功能
- 代码风格
- 编码前后是否要运行某些检查脚本
- 当前开发进度
我在 project_context.md 中写清楚了这些,后续和 AI 对话时,只要贴上这份文件,它就不用再反复强调项目的事情了
四、总结(感受)
在实际项目的开发中,我最大的感受是:AI 是一个极好的生产力放大器,但前提是你必须先帮它把边界划清楚。(也就是把 AI 当作傻子看待,不要以为它能理解)
比如在实现团队订阅功能时,如果我只是简单说“帮我加订阅”,AI 生成的代码大概率和 Jumpstart 内置的结构冲突;但当我明确说明“基于 Jumpstart 的 Pay gem,在团队维度做订阅,并使用 Flowbite 组件做 UI”,AI 给的代码几乎可以直接落地
Vibe Coding 的关键不在于“AI 能写多少代码”,而在于“你能否把需求描述清楚、拆分合理,并维护上下文”。一旦这些做到位,AI 就能帮你完成大量的重复劳动,而你只需要把控架构和关键实现
从我的经验来看,Vibe Coding 更像是带着一个随叫随到的天才傻子写代码
如无特殊说明 Vibe Coding 中,如何提高开发效率 为博主 Lin 原创,转载请注明原文链接: https://blog.lin03.cn/archives/45/