vibe coding 的最佳实践到底是什么?

1 月 22 日
 sillydaddy

最近烦恼

一个小项目,把项目说明 PROJECT . md、用户故事 PLAN . md、原型图 prototype ,都给到了 AI ( opus 4.5 ),希望 AI 能一次性长时间编码。

AI 倒是吭哧吭哧编码了 20 分钟,我满怀期待,结果一看,4 个前端 tab 页对应的 4 个功能,基本不能用。感觉就像一个不负责任的人,连自测都没有测过!

编程的最佳实践是什么

AI 编程出现的问题,并不是不能理解需求。第一次给它原型图,它从中抽取的功能点非常准。但实现时,有几个问题:

1 是有些要求它直接忽略了。比如我希望渲染一个节点网络,用户可以点击某节点,展开和收起它的相邻节点。这个功能描述,在原型中和 PLAN 中都是有的,但 AI 做的时候似乎直接忽略了。也许它做了,但功能没有用,看过程,它也是有自测的。

2 是prompt 不能描述所有的信息,没描述的 AI 可能就考虑不到。比如给每个节点添加了一个+号按钮,用来表示收起和展开,但拖拽节点时,这个+号按钮并不会跟随移动。

总结一下就是,长程编码任务,AI 不能很好的完成,总有挂一漏万的感觉,虽然都说要小步快跑,但是毕竟麻烦啊;而隐含的常识,AI 有欠缺,感觉必须非常详细的说明。

第一性原理的思考

我现在对 AI 的感觉是,AI 修 bug ,编码单个功能,感觉是不在话下的。但涉及到长程的、意图推测的,就不太行。

回归到第一性原理,我尝试把 AI 编码过程,看作是一个在巨大的空间中,寻找解的过程。一个编程任务,就是要在这个巨大的多维空间中,寻找到一个解。

一旦从这个视角看,很多问题就容易理解了:

约束

解的空间是巨大的,要想办法快速找到解。

约束是在给定的空间内求解,剪枝,缩小搜索范围。

如果约束越多,解空间越小,理论上应该更容易找到解。但实践中:

约束太少 --> 解空间太大,AI 乱跑,找到的解不符合要求;

约束太多 --> 可能根本没有解(约束互相矛盾);

架构

因为一个任务,可能有非常多的解。

不同的架构其实对应了不同的区域的解。架构其实是将解的求解范围,约束在了一个范围区域。

所以架构很重要,要早确定。一旦确定了架构,后续的求解过程,就都在这个范围区域内进行了,除非用户手动要求调整架构,求解才会「经由用户指定的路径」跳转到另一块区域。

验证

验证和反馈,是一种修正的信息,让现有的解结合修正的信息,往正确的解集上靠。让不符合的解,走向正确的解。

全局和局部

代码的各个部分之间存在耦合,一些修改,可能会影响到很多地方。问了 AI ,说在修改一个"全局相关"的东西(效率、架构)时,实际上是在高维度上移动,这会同时影响很多低维度的投影。

而局部的 bug 修复,或单个功能的实现,是在低维度上移动,也就是在局部范围内寻找解,它的影响范围有限。

vibe coding 实践的对应物

Rules = 显式的全局约束,定义解空间的边界;

Skills = 预定义的子空间/模式,是已知的"好解区域";

Examples = 锚点,直接在解空间中标记"这里有解";

隐性知识

人类的隐性知识,其实也是对解的一种筛选或者约束。AI 没有这些隐性知识,或者没有实际用到它们,那就意味着求得的解不符合这些隐性约束。

启发

不过,抽象的思考总是很容易,实践起来困难重重。

从上面的分析,得到的都是些 trivial 的东西,我感觉「架构要早行」这个印象比较深刻。但总的来说,仍然没有得到一个最佳实践。

最佳实践到底是什么啊?!

3804 次点击
所在节点    Joe's Talk 🪐
28 条回复
cat9life
1 月 22 日
从一开始你就错了。
目前还做不到很长时间的自主编码,不要在这方面浪费你的精力除非你就是 ai 行业大佬在探索边界。真能够“自主”Manus 就卖不到 20 亿刀乐。
chtcrack
1 月 22 日
目前最佳途径是增加你自己的认知,知道大模型的上下文是有限的..记住这点..
RotkPPP
1 月 22 日
现在这个话题算是 v 站日经了
jmliang
1 月 22 日
让 AI 先指定计划,分阶段完成,每个阶段自己验收一下,有问题就让 Ai 改,没问题继续执行后续计划
hi2hi
1 月 22 日
创建 project.md ,AI 推到 plan.md ,人工预审 plan.md ,提出调整意见;根据项目复杂程度,决定是否拆分更细化的 plan-*.md ;
开始 ai coding
先让 AI 检测本次 coding 是否符合 plan ;
人工查看本次 coding 重要模块;

担当测试工程师,开测,开始和 AI 掰头
yrom
1 月 22 日
哪有什么「最佳实践」这种银弹。比如 Cursor 的开发团队,他们研究 Agentic Coding 可以算顶尖吧?最近拿出来吹的让 GPT-5.2 连续运行 7 天写出来的几百万行代码的浏览器,不说很多大佬扒它裤子看本质就是个「调包侠」,烧这么久 Token 出来的玩具,开源放出来工程质量一塌糊涂,编都编不起来
sillydaddy
1 月 22 日
@yrom 感谢分享,这个新闻我得看看去。
sillydaddy
1 月 22 日
@hi2hi #5 前期基本是按照你说的,plan 做好了,大概的用户故事都是有的,但就像主题里说的,没有做到特别细,但就是很多没有明确的,AI 就会掉链子了。我想尝试的还是希望减少人工介入。
hi2hi
1 月 22 日
@sillydaddy 这一方面还是差了点,或者说,还是预期太高了;
超长的上下文整理的,整个项目不断产生的记忆自动化向量处理等等。。。。还是很难,目前
再等两年,你现在往前看看,已经算是翻天覆地的变化了(
doraemonki
1 月 22 日
基础原理:
一次任务占用的上下文越少,AI 越聪明!!!
一次任务占用的上下文越少,AI 越聪明!!!

编码之前做写好分阶段计划,写计划的时间占至少占了 60% ,code review 修 bug 时间占 30%,实现代码是很快的。

最初版的计划必须不断改,起码让 AI 改 10 轮吧,不断质问 AI 这计划合理吗,这计划有问题吗,不考虑兼容性这计划最佳设计应该是怎么样的(不同方式提问很有不同角度的惊喜)

另外跟人一样,设计代码应该追求语义清晰,代码可读性与良好的项目结构能帮助 AI 快速定位修改位置。

请直接使用 opus4.5 等最聪明的模型,搭配严格的项目规范+测试,保证你 vibe coding 直接起飞。
参考 vibe coding 最佳实践之约束带来自由 https://www.v2ex.com/t/1182388
Cyron
1 月 22 日
不清楚你有没有在一开始把架子搭好,还是完全空白的项目开始
我一般会预估这个任务的 context 用量,如果超过了 50%容易导致上下文腐坏,agent 会迫于压力敷衍了事
cursor 之前发了个博客说各家都在做上下文工程,这个问题会逐渐得到改善
建议就是,先搭好架子,让 agent 专注实现;再就是别指望一次生成,先拆 task ,然后分 session 逐个完成;另外可以引入 playwright mcp ,让 agent 获得反馈
我们团队是这样做的,可以看看我之前的分享
https://www.v2ex.com/t/1183407
JoeJoeJoe
1 月 22 日
现在的变化太快了, 今天的最佳实践, 到明天说不定就不是最佳了.

就是每天学一点点小技巧, 能用上, 觉得好用就算赚了

如果在未来和年轻人回忆现在, 我们也可能只是说一句: 你们赶上了好时候, 我们当时的 AI 辅助可复杂了!
y1y1
1 月 22 日
写点小函数差不多得了
wszzh
1 月 22 日
最佳实践就是实践
dnfQzjPBXtWmML
1 月 22 日
没有

不过每次只生成一个模块可以提高成功率,改乱了进了死胡同也可以直接要求 LLM 全部删掉重写,重写的代码往往是没问题的
Sylphiette
1 月 22 日
模型技术和 Agent 生态都还在发展,而且发展的还很快
现阶段可以了解下 https://github.com/github/spec-kit
sillydaddy
1 月 22 日
@doraemonki #10 测试 driven 这个马上安排上,即使是 UI 界面这种,也搞一个文字版的测试用例,看看效果怎么样。
@Cyron #11 感谢分享,现在正弄 Cursor 的 rules ,正用的上。
@JoeJoeJoe #12 是啊,我太想一口吃个胖子了。
@Sylphiette #16 好的,spec 也给安排上。
AEDaydreamer
1 月 22 日
现在的 coding agent 还是每次让它 plan1-3 个模块好一点. 整个系统就是丢三落四.
meeop
1 月 22 日
当然是像自动驾驶一样,全自动完成全部工作,作为人只需要提出需求,监督过程,审查结果,而且通常情况,这部分也不必须做,你只是发布命令和想法即可

目前的技术还做不到,小项目勉强能做到,不过目测非常快,很可能今年或者近几年就能无限接近上述目标

所以,长远看,这个问题也没必要问,等 agent 进化即可,反正你现在做的所有改进,最多几个月内 agent 就能追平,几乎是纯无用功
myluke
1 月 22 日
我很认同这个哥们说的和比喻。

AI 是能力的放大器,更是建筑师的包工头

怎么说?

Vibe Coding 软件真的要走得远,本质是你要理解什么是 Vibe Coding

Vibe Coding 和建筑师很像

你终于有一天是建筑师了,只用坐在办公室了,不用亲自打地基、了解材料热力学特性、走网络、做软装和外墙造型了,你只用坐在办公室规划图纸就好了

Vibe Coding 的最后就是建筑师职业

但是一个优秀的建筑师,以前肯定知道怎么造楼的方方面面,跑过无数次工地,被各种大的小的事情坑过无数遍,无数遍经验造就了设计师的能力

编程也是一样的,你只有趟过无数个坑,你才不会被 AI 坑到,你才会在 AI 走入死胡同的时候拉它出来,给它新的方向,你才会虽然不看代码,但是看表现就能知道它代码结果哪里没设计好

而这一切都源于你做过,你擅长,你知道怎么收尾

AI 本质就是在你知道的认知领域,按照你的指挥,帮你干体力活,如果你已经做过很多模块,新的软件只是把过去的模块重新组合创造,那么 AI 很合适,因为它像一个任劳任怨的同事再给你干苦活累活

如果你没有干过建筑师,你才盖了一个毛坯房,你就觉得自己牛逼,但是你会发现,你盖到 2 楼你就盖不下去了,你不知道怎么通过合适的提示词控制 “AI 这棵树怎么精确生长”, 你的业余的话只会给 AI 增加过多的冗余代码,直到有一天,上下文超过 AI 的脑容量,你再说什么它都是糊涂的

本质 Vibe Coding 到商业化的方法途径就是三个:
1. 自己曾经是商业化落地的程序员,蹚过无数坑

2. 新的软件本质是新的架构,大脉络一定要清晰,脉络不清晰,楼盖不高

3. 骨架改好了,其实剩下的事情很简单,在某一个维度(约束上下文),人类做测试,AI 微调,知道水电、软装和外墙装好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1187503

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX