跳到主内容
✍️ 公众号文章
经/管/金融人
学生

Effective Vibe Coding

拆解开源项目 vibe-coding-cn 的方法论:以规划驱动与 AI 结对编程,提出道法术器四层体系、胶水编程范式、递归自优化提示词系统与 Memory Bank 上下文管理,重塑 AI 时代软件工程实践。

李学恒8 分钟阅读#vibe-coding#ai-pair-programming#claude-code#prompt-engineering#memory-bank

最近,GitHub 上有一个开源项目悄然走红。它不是一个框架,不是一个库,而是一套完整的与 AI 结对编程的方法论体系。项目名叫 2025Emma/vibe-coding-cn,核心理念只有一句话:

规划就是一切。

这篇文章,我将带你深入拆解这个项目,看看它如何重新定义 AI 时代的软件开发方式。

一、什么是 Vibe Coding?

Vibe Coding 的中文可以理解为「氛围编程」或「感觉编程」。它的核心主张是:

通过与 AI 结对编程,将想法丝滑地变为现实

但它强调的重点不是让 AI 自由发挥,恰恰相反——它强调规划驱动和模块化,目的是避免让 AI 失控导致项目变成一团无法管理的乱麻。

项目作者在 README 中写道:

规划就是一切。 谨慎让 AI 自主规划,否则你的代码库会变成一团无法管理的乱麻。

这句话点出了当前 AI 编程的核心痛点:AI 很强大,但如果没有清晰的规划和约束,它生成的代码往往会变成单体巨型文件、技术债爆炸、逻辑混乱。

二、道法术器:一套完整的编程哲学体系

Vibe Coding 项目最有价值的部分,是它提出了一套道法术器的四层编程哲学体系。

🧭 道:编程的根本原则

道是最高层的指导思想,决定了一切决策的方向:

凡是 AI 能做的,就不要人工做。 这是第一原则,充分发挥 AI 的效率优势。

上下文是第一性要素,垃圾进垃圾出。 你给 AI 什么样的输入,就会得到什么样的输出。好的上下文决定了好的结果。

目的主导。 开发过程中的一切动作都围绕目的展开,不做无关的功能。

先结构,后代码。 一定要规划好框架,否则后面技术债还不完。

奥卡姆剃刀。 如无必要,勿增代码。

帕累托法则。 关注重要的那 20%。

逆向思考。 先明确需求,从需求逆向构建代码。

还有一个很有意思的观点:

数据是事实,函数是意图。程序是结构化的思想。

这个表述非常精辟。它把编程本质提炼为数据加函数,数据描述世界的状态,函数表达我们对世界的改变意图。

🧩 法:具体的工程方法

法是落地的方法论,告诉你具体怎么做:

一句话目标+非目标。 明确你要做什么,更要明确你不做什么。

正交性。 功能职责不要重复,每个模块只做一件事。

能抄不写。 优先使用成熟方案,不重复造轮子。先问 AI 有没有合适的开源库,下载后修改。

一定要看官方文档。 先把官方文档爬取下来提供给 AI。

按职责拆模块。 遵循单一职责原则。

接口先行,实现后补。 先定义好 API 契约,再写具体实现。

文档即上下文。 文档不是事后补充,是实时维护的知识库。

🛠️ 术:操作层面的技巧

术是具体的操作指南:

明确写清能改什么,不能改什么。 给 AI 明确的边界。

Debug 只给预期 vs 实际+最小复现。 不要给一堆无关信息。

测试可交给 AI,断言人审。 AI 生成测试代码,但测试逻辑需要人来验证。

代码一多就切会话。 管理好上下文窗口,避免 AI 忘记重要信息。

📋 器:支撑的工具链

器是具体的工具推荐:

IDE 方面,项目推荐 Claude CodeCursor,强调使用终端版本能更好发挥模型实力。

AI 模型方面,首推 Claude Opus 4.5gpt-5.1-codex (xhigh) 作为第一梯队。

还有一些辅助工具:Warp 终端、tmux、Mermaid Chart(画架构图)、NotebookLM(AI 解读资料)等。

三、胶水编程:一个革命性的新范式

项目中有一个非常有意思的概念叫「胶水编程」(Glue Coding)。

传统开发是这样的:

  • 设计架构
  • 自己编写逻辑
  • 手动处理各种细节
  • 重复造轮子

这导致开发成本高、周期长、成功率低。

而胶水编程是这样的:

几乎完全复用成熟开源组件,通过最小量的胶水代码将它们组合成完整系统。

核心原则是:

  1. 凡是能不写的就不写——任何已有成熟实现的功能,都不应该重新造轮子
  2. 凡是能 CV 就 CV——直接复制使用社区验证过的代码是正常工程流程
  3. 站在巨人肩膀上——利用现成框架,不试图自己再写更好的轮子
  4. 不修改原仓库代码——所有开源库保持不可变,作为黑盒使用
  5. 自定义代码越少越好——你写的代码只承担组合、调用、封装、适配

标准流程是:

明确需求 → AI拆解需求 → 搜索开源实现 → 整理仓库
→ 按架构组织 → 编写胶水层代码 → 完整系统

这个方法的价值在于:

  • 成功率极高——使用社区验证过的成熟代码
  • 开发速度极快——大量功能直接复用
  • 降低成本——时间、维护、学习成本大幅减少
  • 系统更稳定——依赖成熟框架而非个人实现
  • 与 AI 强配——GPT/Claude 能辅助搜索、拆解、整合

四、元方法论:递归自优化生成系统

项目中有一个听起来很学术但其实很实用的理论创新:递归自优化生成系统。

别被名字吓到,它的核心思想用一句话就能说清:让 AI 学会生成更好的 AI 指令,然后用更好的指令生成更更好的指令,如此循环往复。

两个核心角色

这个系统定义了两个核心角色,你可以把它们想象成一对搭档:

α-提示词(生成器):专门负责生成其他提示词或技能。就像一个擅长写剧本的编剧,它的工作就是创造新内容。

Ω-提示词(优化器):专门负责优化其他提示词或技能。就像一个严格的编辑,它的工作就是挑毛病、提建议、打磨作品。

递归进化的四个阶段

这两个角色配合起来,会形成一个不断进化的循环:

第一阶段:创生。 用 AI 生成 α 和 Ω 的初始版本。这时候它们可能还很粗糙,但没关系,有个起点就行。

第二阶段:进化。 用 Ω 去审视 α,指出它的问题,给出改进建议,生成更强的 α 第二版。编辑开始打磨编剧的作品了。

第三阶段:创造。 用进化后的 α 去生成你真正需要的各种提示词和技能。更好的编剧写出更好的剧本。

第四阶段:循环。 把新生成的产物反馈给系统,再次用 Ω 优化 α,启动下一轮进化。周而复始,越来越强。

用 Claude Code Skill 来理解这个概念

如果你觉得上面的描述还是有点抽象,Claude Code 的 Skill 系统是这个理论最好的实践案例。

在 Claude Code 中,Skill 是一种可复用的能力模块。每个 Skill 就是一个文件夹,里面包含一个 SKILL.md 文件,定义了这个能力做什么、什么时候触发、具体怎么执行。

有意思的是,Vibe Coding 项目提供了一个叫 claude-skills 的元技能。这个 Skill 的唯一职责就是帮你生成其他 Skill。

这就是 α-提示词的实体化身:一个专门生成 Skill 的 Skill。

当你用这个元技能生成了一个新 Skill 后,你可以让 AI 审阅它、优化它、迭代它。这个审阅优化的过程,就是 Ω-提示词在发挥作用。

整个流程是这样的:

元技能(α) 生成 → 新 Skill v1
↓
AI 审阅优化(Ω) → 新 Skill v2
↓
实际使用 → 发现问题
↓
反馈给元技能(α) → 元技能自身也得到改进
↓
改进后的元技能 → 生成更好的 Skill

这就是递归自优化:生成器在生成产物的过程中,自己也在不断进化。

为什么这个思想很重要

传统的软件开发是线性的:你写一段代码,测试,部署,完事。

而递归自优化生成系统是指数级的:每一次迭代,系统的生成能力都在提升。十次迭代后,你拥有的不是十个产物,而是一个比最初强大十倍的生成引擎。

这指向了 AI 时代软件工程的终极形态:能够自我进化的提示词系统。

你不需要手写一百个 Skill,你只需要打磨好一个能生成 Skill 的元 Skill,然后让它去生成其他的。

五、Memory Bank:让 AI 记住你的项目

Vibe Coding 的另一个核心概念是 Memory Bank(记忆库)

它要求在项目根目录下创建一个 memory-bank 文件夹,包含:

  • game-design-document.md——项目设计文档
  • tech-stack.md——技术栈说明
  • implementation-plan.md——实施计划
  • progress.md——进度记录
  • architecture.md——架构说明

关键规则是:

写任何代码前必须完整阅读项目上下文文档。

每完成一个重大功能后,必须更新架构文档。

这解决了 AI 编程的一个核心问题:上下文丢失

传统的 AI 编程往往是一次性的:你问一个问题,AI 给一个答案,然后上下文就丢了。

而 Memory Bank 让 AI 能够记住项目的完整状态,实现跨会话的知识迁移。

六、编程之道:12 条核心语录

项目中有一份《编程之道》文档,用哲学化的语言提炼了编程的本质。这些语录值得反复品味:

  • 数据是事实,函数是意图。 数据记录世界的状态,函数表达你想如何改变它。
  • 程序即因果。 输入决定输出,代码就是因果链条的形式化表达。
  • 抽象是压缩世界。 好的抽象把复杂现实压缩成简单概念,让人脑能够处理。
  • 状态越少,世界越清晰。 每多一个变量,系统的复杂度就指数级增长。
  • 接口是契约,实现是细节。 对外承诺什么不能变,内部怎么做可以随时换。
  • 组合胜于扩展。 把小模块组合起来,比在大模块上不断叠加功能更可控。
  • 程序是时间上的结构。 代码不只是空间上的组织,更是事件在时间线上的编排。
  • 可推理性优于性能。 能看懂、能预测的代码,比跑得快但没人敢改的代码更有价值。
  • 约束产生秩序。 好的限制不是束缚,而是让系统自然走向有序的护栏。
  • 代码是知识的形状。 你对问题理解多深,代码结构就有多清晰。
  • 不惊讶,是最高的设计。 好的 API 让人一看就知道怎么用,不需要查文档。
  • 简单是最终的复杂。 真正的简单不是省略,而是把复杂消化后呈现的清澈。

整个文档的总结是这样一句话:

编程之道不是教你怎么写代码,而是教你如何理解世界。代码是思想的形状,程序是理解世界的另一种语言。

七、与传统编程的本质区别

Vibe Coding 与传统编程的区别可以总结为这张表:

维度传统开发Vibe Coding
工作方向自己写逻辑复用+组合成熟库
AI 角色代码辅助工具主要生产力工具
规划事后补充前置强制
代码量越多越好越少越好
模块边界模糊,容易耦合清晰,强制正交
上下文管理人脑记忆持久化文档
迭代周期长,一次大改短,频繁小步

本质区别:从我写代码变成我规划和指挥 AI。

八、实操建议:如何开始 Vibe Coding

如果你想尝试 Vibe Coding,可以按照这个流程:

第一步:创建项目设计文档

把你的想法交给 Claude 或 GPT,让它生成一份简洁的设计文档。自己审阅完善,确保与你的愿景一致。

第二步:确定技术栈

让 AI 推荐最合适的技术栈,要求它提出最简单但最健壮的方案。

第三步:生成实施计划

将设计文档和技术栈交给 AI,让它生成详细的实施计划。每一步要小而具体,每一步都必须包含验证正确性的测试。

第四步:建立 Memory Bank

创建 memory-bank 文件夹,放入所有关键文档。

第五步:分步实现

每次只做一步,完成后提交 git,新建会话,继续下一步。

关键是:用 Ask 模式确认满意后再执行,不要让 AI 直接干活。

九、深度思考:AI 时代的软件工程

读完 Vibe Coding 项目,我最大的感悟是:

软件工程的未来 = 规划驱动 + AI 执行 + 上下文管理 + 持续优化

而不是:代码量越多越好。 而不是:自己从零写所有东西。 而不是:事后补充文档。 而不是:希望 AI 自主完成整个项目。

这个项目正在诠释如何与 AI 结对编程的终极方法

它的价值不在代码本身,而在于:

  1. 定义了 AI 时代的编程新范式——从我写代码到我规划和指挥 AI
  2. 系统化了模糊的工程实践——把黑艺术变成了可复现的方法论
  3. 提供了完整的工具链——从提示词到工作流,从思想到工具
  4. 强调了规划的决定性地位——这是 AI 时代软件工程的第一性要素

最后,愿你在复杂世界中保持清晰,在代码中看见本质。

参考来源:

related