什么是 Vibe Coding

Vibe Coding 这个概念来自 Andrej Karpathy,核心理念是:你不需要逐行手写每一行代码,而是通过描述你的意图,让 AI 帮你生成大部分实现。你的角色从”写代码的人”变成了”指挥代码的人”。

这听起来像是偷懒,但实际上它要求更高层次的能力 — 你需要清晰地理解自己要构建什么,能够判断 AI 生成的代码质量,并且知道什么时候该手动干预。对我来说,这是一种全新的编程体验。

“There’s a new kind of coding I call ‘vibe coding’, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.” — Andrej Karpathy

项目背景:Scholar AI

Scholar AI 是一个学术研究辅助工具。作为一个经常需要阅读论文、整理文献的大学生,我深知这个过程有多痛苦。我想要一个工具,能帮我快速检索相关论文、自动生成摘要、甚至支持多语言翻译。

这个想法在我脑子里酝酿了很久,但传统的开发方式意味着至少需要一两周的时间。直到我开始尝试 Vibe Coding — 三天后,一个可用的 MVP 就上线了。

项目概览
  • 项目名:Scholar AI
  • 技术栈:Python / FastAPI / React / PostgreSQL / ChromaDB
  • 核心功能:论文检索 · 智能摘要 · 多语言翻译 · RAG 问答
  • 开发周期:3 天(MVP)
  • GitHub:37chengshan/scholar-ai

Day 1:后端 从零搭建

第一天的目标很明确:搭建一个能跑起来的后端。我用 Claude 作为主要的编码助手,通过描述需求来生成代码。

01

定义 API 接口

先用自然语言描述需要哪些接口,让 AI 生成 OpenAPI spec,再基于 spec 生成 FastAPI 路由代码。这一步花了大约 30 分钟。

02

数据库设计

描述数据模型的关联关系,让 AI 生成 SQLAlchemy 模型和 Alembic 迁移脚本。遇到一些类型映射问题,手动调整了几个字段。

03

RAG 管道搭建

这是最有趣的部分。描述了检索增强生成的流程:文档分块 → 向量化 → 检索 → 生成。AI 帮我搭好了 ChromaDB 集成和 OpenAI API 调用的骨架。

Day 2:前端 快速成型

第二天转向前端。我选择 React + TypeScript,配合 shadcn/ui 组件库。Vibe Coding 在前端开发中的效率提升更加明显 — 描述一个页面的布局和交互,AI 几乎能一次性生成可用的组件代码。

关键心得:不要试图一次描述整个页面。拆成小组件,逐个描述,效果好得多。比如”一个搜索框,带自动补全,下拉显示论文标题和作者”比”做一个搜索页面”得到的结果精准得多。

Vibe Coding 不是让你不动脑,而是让你把精力花在更重要的地方 — 产品思考和用户体验。

个人体会

Day 3:集成 与打磨

第三天做集成和细节打磨。前后端联调、错误处理、加载状态、响应式布局 — 这些”脏活”反而是 Vibe Coding 效率最高的地方。描述一个问题,AI 给出修复方案,你验证,继续。

几个踩过的坑:

  • CORS 配置:AI 生成的 CORS 中间件配置有时会漏掉特定的 header,需要手动补充
  • 流式响应:SSE (Server-Sent Events) 的实现细节比较多,AI 第一次生成的代码有 bug,但描述清楚错误后修复很快
  • 向量数据库性能:ChromaDB 的默认配置在数据量大时会变慢,需要手动调优索引参数

总结与反思

三天完成一个全栈 AI 应用的 MVP,这在以前是不可想象的。Vibe Coding 真正改变了我的开发节奏 — 从”写代码”变成了”描述需求、验证输出、迭代优化”的循环。

但它也有局限。对于复杂的业务逻辑、性能关键路径、以及需要深度理解底层原理的场景,手写代码仍然不可替代。Vibe Coding 最适合的是快速原型和标准化功能的实现。

我的建议:把 Vibe Coding 当作你的”编码副驾驶”,而不是”自动驾驶”。保持对代码的理解和控制,才能真正发挥它的威力。