Vibe Coding 开发项目的基本范式

13 阅读4分钟

先搞清一件事:Vibe Coding ≠ 乱Accept

Andrej Karpathy 原话是 "fully give in to the vibes, embrace exponentials, and forget that the code even exists" ——说的是周末原型/探索阶段的极致体验。但真要把项目做靠谱,社区的共识已经收敛成了一个更成熟的范式:

你的角色从"打字员"变成了"产品经理 + 代码评审官" 。AI负责实现速度,你负责意图、边界和质量把关。


范式总览:The Review-Driven Loop

这是最核心的运行循环,每一步都别省

① Spec(写清楚做什么) 
  → ② Context(把约束喂给AI,而非空洞指令)
    → ③ Generate(生成小步增量代码)
      → ④ Review(像审PR一样逐行看Diff ← 最关键的一步)
        → ⑤ Test(跑通验证)
          → ⑥ Commit(过了才入库,永远可回退)

任何一步跳过去,技术债就在悄悄累积。


Phase 1:项目初始化(工程规范前置)

这是 vibe coding 和传统"直接说帮我做个网站"最大的区别——先定规矩,再让AI进场

1. 建一个 CLAUDE.md/ AGENTS.md(项目"宪法")

放在项目根目录,所有AI工具都能读:

# Project: MyApp — 一个___SaaS/工具/游戏___

## Stack
Next.js 15 · TypeScript(strict) · Tailwind · Supabase(PostgreSQL)

## 目录约定
src/
  app/         → 路由页
  components/  → 可复用UI
  lib/         → 业务逻辑 & DB查询(DB不准在组件里查)
  types/       → TS类型集中管理

## 禁令
- 不许引入新第三方库(除非问我)
- 不许改 tsconfig / eslint 等基础设施
- 所有API输入走 Zod 校验
- 报错要有边界处理,不准 silent fail

## 启动命令
npm run dev / npm run test / npm run typecheck

有了这个文件,你之后每句 prompt 都不用重复背景,AI 会自觉对齐你的规范。

2. 目录结构早定,别让AI自由生长

AI 的天性是"当前任务最优解"而非"长期结构最优"——它会把逻辑堆进一个大文件、随便加新文件不按模式、混关注点。你要在生成大量代码前先把骨架钉死

项目根/
├── AGENTS.md           AI的"入职手册"
├── PRD.md              需求文档(哪怕一页纸)
├── src/
   ├── components/     按职责拆,不按技术类型硬套
   ├── lib/            纯逻辑(可测UI依赖)
   ├── pages/ 或 app/
   └── types/
├── tests/
└── prompts/            把跑得好的prompt存下来复用

Phase 2:日常开发循环(增量,不要大爆炸)

❌ 错误姿势

"帮我做一个带登录、商品管理、购物车、支付的电商网站"

→ AI 会给你一坨过度设计 + 版本冲突 + 看不懂的代码。

✅ 正确姿势:Micro-Commits

每个 prompt 只做一个可独立验证的小任务

① 先定 TypeScript 类型和 DB schema
② 写 GET /api/products 路由 + 单元测试
③ 写 products list 页面组件
④ 接 auth(login/logout)+ session 校验
⑤ 加购物车逻辑(先本地 state,再 persist)
...

每一步:生成 → 看 Diff​ → 跑测试 → 提交 → 下一个

Prompt 的黄金公式

[Context: 指向已有文件/模式] 
+ [What you want: 精确描述]
+ [Constraints: 不许XX,必须沿用了XX模式]
+ [Example: 参考已有的 XXX 文件]

弱 prompt:加个用户设置页

强 prompt:在 app/settings/page.tsx 建用户设置页,可改 displayName/email/avatarURL。复用现有 UserForm 模式(见 app/profile/page.tsx)。fetch user via getServerSession,update via PATCH /api/user。加 Zod schema,success 时调 sonner toast(见 lib/toast.ts)


Phase 3:质量底线(不做这些 = 定时炸弹)

底线做法
永远看 Diffgit add -p交互式暂存,只 accept 你理解的改动;盯住"偷偷 import 了什么新包"
测试是护栏理想模式:你写测试用例(精确规格),AI 填空让测试变绿
上下文管理对话长了就 /clear开新会话,关键信息写进 AGENTS.md / progress.md,别让 AI 在熵增里变蠢
隔离环境AI 有 Shell 权限时尤其危险——Docker 或临时环境里跑实验,炸了秒重置
安全红线绝不硬编码密钥、review 所有 SQL/API 暴露面、AI 爱"画蛇添足"加依赖——每条新 import问一句 why

成熟度自检:你在 L1/L2/L3 哪一级?

  • L1 新手:复制 AI 代码不问 why → 技术债 + 安全洞,风险极高
  • L2 进阶:会 review diff、设约束上下文,但底层原理模糊 → 能跑但难维护
  • L3 专家你定架构和边界,AI 当执行器​ → AI 是杠杆,人是大脑

一句话总结范式

Vibe Coding 的范式不是"不写代码",而是:规范前置 → 意图精确 → 增量交付 → Diff 审查 → 测试关门 → 频繁提交。 ​ 把 AI 当极快的实习生——你不会因为他敲得快就让代码直接上线,同理别因为 AI 快就跳过工程纪律。

如果你告诉我你准备用哪个工具栈(Cursor / Claude Code / Windsurf / Lovable 等)和项目类型(Web app / 小程序 / 数据工具 / 游戏…),我可以帮你把 AGENTS.md模板和第一轮任务拆解表直接落到你的场景里。