Vibe Coding的看法与思考
什么是Vibe Coding?
Vibe Coding(氛围编程 / “AI 手搓”)是 2025 年 2 月由 OpenAI 联合创始人、前特斯拉 AI 负责人 Andrej Karpathy 在 X 上提出的概念,原话是:
“有一种新编程方式我叫 vibe coding——完全交给感觉,拥抱指数级,连代码存在都忘了。”
他当时描述的是自己用 Cursor Composer + Claude Sonnet,配合语音转文字 SuperWhisper 口述需求,AI 生成的改动他一眼不看 diff,全部 accept,跑起来就继续;崩了就把报错贴回去让 AI 修。这种”跟着感觉走、代码爱谁谁”的写法就是原教旨 vibe coding。

它和普通”AI 辅助编程”不是一回事
这点很多人会混,Simon Willison 给过一个清晰的划线:如果 AI 写了代码,但你 review 了、测试了、能讲清它是怎么工作的——那叫”AI 辅助的软件开发”,不叫 vibe coding。

所以 vibe coding 的核心特征是 “不读代码”——人只管描述意图 + 验收结果,实现细节全交给 LLM。
典型工作流
- 用自然语言丢需求:”给我搭个js 的小应用,记录我读了哪些书”
- AI 生成文件、依赖、样式、逻辑
- 你不看 diff,直接 run
- 跑通了就继续堆功能;崩了就贴报错回去让 AI 修
- 循环直到”能用了”或”放弃了”
适合用在哪
- 周末 throwaway 原型——想验证个点子,几分钟内出 demo,不行就扔
- 个人小工具——批量重命名脚本、Chrome 插件、自用小页面,无用户无安全压力
- 学新东西时摸感觉——想看看某个 API 或框架长啥样
坑在哪
Karpathy 自己也说”周末玩具项目还行,挺逗的”。真往生产放的话问题很明显:
- 你看不懂的代码 = 你修不了,项目一大 debug 会疯
- 技术债滚得快,AI 为了跑通可能绕出奇怪实现
- 安全隐患,黑客视角看 vibe coding 生成的代码是块肥肉
- 维护者离职 = 项目报废,因为没人真正理解代码
Vibe Coding的一次尝试
背景:AI工具生成的文档或者报告大部分是markdown格式或html格式。基于此场景,期望对这些此部分文档进行很好的管理。
期望:这开发一款桌面工具,左侧是文件树,可以管理相关的文件,右侧调用浏览器内核,渲染HTML文件和Markdown文件。
最终效果:

使用Vibe Coding遇到的问题与卡点?
1、技术栈的选择?
对于一些没有技术经验的同学,可能不清楚应该用什么技术栈?或者使用AI工具,让其推荐合适的技术栈。
所以在开发之前,建议让AI先推荐适合的技术栈。然后的再制定开发需求
| 维度 | WinUI 3 | Tauri 2 | Electron |
| 目标平台 | 仅 Windows | Windows/macOS/Linux | 全平台 |
| 语言 | C#/.NET | Rust + JS | JS |
| 渲染内核 | WebView2 (Chromium) | 系统 WebView | 捆绑 Chromium |
| 安装包 | ~30-50MB (含 WebView2) | ~5MB | ~150MB |
| 原生外观 | 最原汁原味 | 需自绘 | 需自绘 |
| 文件系统 API | System.IO 直接可用 | Rust command 桥接 | Node.js fs |
| 学习曲线 | C# 开发者零门槛 | 需学 Rust | JS 开发者友好 |
这里我选择的是Tauri 2。其实在该场景下使用Electron更加合适,Rust在性能层面的优势在该场景下根本表现不出来,还新引入了的一种语言,导致复杂度其实是偏高的,Electron唯一的缺点是它会把Chromium打包进安装包。对于有系统洁癖的人来说,每安装一个Electron都在在系统重安装一个Chromium,个人比较受不了。
2、AI能实现相关的功能,但中间的会出现无法预知的问题
- 问题1:文件树打开以后会在虚拟环境创建,虽然创建打开的D;\文档 但是在实际磁盘中无法找到。
- 问题2:HTML中的链接无法正确打开,点击无反应,让其修复后,产生新的问题:点击链接打开一个新的文件树
- 问题3:历史打开的文件目录,再次打开后需要重新设置,没有将已打开目录记录
当前存在的问题。
- 针对遗漏的功能,如记录上次打开的目录、添加对文档的排序功能(并记录),增加大纲显示都可以通过后期提示完成
- 针对一些无法预知的问题,调试起来非常的困难,花费时间非常的长,即时反馈了现象与问题,也需要一次次的重复修改后再验证,目前代码在为未知异常场景下的修复能力很弱。
我对Vibe Coding的看法
目前来说基本满足小工具的开发,但是详细的开发需求文档也是必须的。另外对于测试,这块会比较耗时。比较适合拿来重复发明轮子。做一些小而美的工具。
判断一个场景该不该 vibe,就看一件事——”出错的成本谁承担,出错的后果多严重”。
| 场景 | 我的建议 |
| 周末玩具、个人脚本、一次性探索 | 全力 vibe,Cursor / Claude Code / Bolt 随便挑 |
| 内部小工具、无用户无敏感数据 | 可以 vibe,但过一遍安全扫描再上线 |
| 涉及用户、支付、权限、隐私的产品 | vibe 做原型,生产必须走 agentic engineering |
| 高可靠、长周期维护、合规敏感系统 | 不要用纯 vibe,AI 是 pair programmer,你是要 review 的 |





