V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sillydaddy
5.5D
4.77D
V2EX  ›  Joe's Talk

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

  •  
  •   sillydaddy · 15 小时 7 分钟前 · 1903 次点击

    最近烦恼

    一个小项目,把项目说明 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 的东西,我感觉「架构要早行」这个印象比较深刻。但总的来说,仍然没有得到一个最佳实践。

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

    Solana
    V2EX 支持通过 Solana 网络向内容作者打赏
    JoeJoeJoe 打赏了 20 $V2EX
    26 条回复    2026-01-23 00:06:55 +08:00
    cat9life
        1
    cat9life  
       14 小时 42 分钟前
    从一开始你就错了。
    目前还做不到很长时间的自主编码,不要在这方面浪费你的精力除非你就是 ai 行业大佬在探索边界。真能够“自主”Manus 就卖不到 20 亿刀乐。
    chtcrack
        2
    chtcrack  
       14 小时 37 分钟前
    目前最佳途径是增加你自己的认知,知道大模型的上下文是有限的..记住这点..
    RotkPPP
        3
    RotkPPP  
       14 小时 36 分钟前
    现在这个话题算是 v 站日经了
    jmliang
        4
    jmliang  
       14 小时 32 分钟前
    让 AI 先指定计划,分阶段完成,每个阶段自己验收一下,有问题就让 Ai 改,没问题继续执行后续计划
    hi2hi
        5
    hi2hi  
       14 小时 21 分钟前
    创建 project.md ,AI 推到 plan.md ,人工预审 plan.md ,提出调整意见;根据项目复杂程度,决定是否拆分更细化的 plan-*.md ;
    开始 ai coding
    先让 AI 检测本次 coding 是否符合 plan ;
    人工查看本次 coding 重要模块;

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

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

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

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

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

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

    如果在未来和年轻人回忆现在, 我们也可能只是说一句: 你们赶上了好时候, 我们当时的 AI 辅助可复杂了!
    y1y1
        13
    y1y1  
       11 小时 45 分钟前
    写点小函数差不多得了
    wszzh
        14
    wszzh  
       11 小时 3 分钟前
    最佳实践就是实践
    dnfQzjPBXtWmML
        15
    dnfQzjPBXtWmML  
       10 小时 59 分钟前
    没有

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

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

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

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

    怎么说?

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

    Vibe Coding 和建筑师很像

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

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

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

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

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

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

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

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

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

    3. 骨架改好了,其实剩下的事情很简单,在某一个维度(约束上下文),人类做测试,AI 微调,知道水电、软装和外墙装好
    rick13
        21
    rick13  
       6 小时 21 分钟前
    现在没有最佳实践
    cskeleton
        22
    cskeleton  
       5 小时 58 分钟前
    还能继续拆,我让 AI 写一个开发计划,然后拆分成 n 个步骤,每个步骤写一个 workflow ,然后让 AgentA 写一个,写完让 B 来 review ,但是这样人工介入比较多了,拆太细 AI 写得也快,还达不到一口气写 20 分钟这种。倒是很后期要修改或者 debug ,cursor 能一口气跑几 M tokens 。
    notwaste
        23
    notwaste  
       4 小时 47 分钟前 via iPhone
    @cskeleton 这么弄不一定有自己写效率高了
    cskeleton
        24
    cskeleton  
       4 小时 43 分钟前
    @notwaste #23 写的时候可以让多个 agent 一起写,还是快的
    sillydaddy
        25
    sillydaddy  
    OP
       4 小时 41 分钟前
    @cskeleton #24 我看到 cursor 有 subagent ,是不是这个呢? subagent 一般怎么用啊,比较困惑这一点。如果是为了减少单个对话的上下文,是不是每个子任务都让 subagent 去做呢?
    nijux
        26
    nijux  
       55 分钟前
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1375 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 17:02 · PVG 01:02 · LAX 09:02 · JFK 12:02
    ♥ Do have faith in what you're doing.