V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wxiao333
V2EX  ›  程序员

公司开始全面 vibe coding 之后感觉更累了

  •  2
     
  •   wxiao333 · 2 天前 · 5186 次点击
    最近 15 人小组实践 vibe coding 遇到了一系列问题。整的我们连续加班了 1 个月。

    项目背景:
    公司里的核心项目。涉及资金流企业级复杂架构,对系统的稳定性和高可用性要求极其严苛。
    这个项目是专门为大促(比如双 11 )这种极端高并发流量设计的,里面充满复杂的业务逻辑,比如多层级的数据核对、消息补偿机制和各种应急预案。技术路线上使用公司自研框架上从 0 到 1 开发。
    而且压力大的是,它是个倒排期项目,上线时间给定死了,一秒都不能拖。

    准备阶段:
    这次开始前我们内部讨论了很久,决定采用 SDD (规范驱动开发) 模式,即由规范和文档驱动 AI 进行架构设计、系统开发以及单测和集测的编写。
    出于数据安全的考虑,团队申请了一个全新的项目仓库。明确要求 AI 不能读取公司既有的私有代码库,以规避潜在的合规风险。
    由于 AI 缺乏对公司内部定制或自研框架的了解,我们手动编写了大量示例代码和 Todo 供 AI 学习。
    团队预先定义了多个 Agent (智能体),并设计了详细的 Workflow (工作流),试图通过流程化来约束 AI 的发散行为。

    惊喜的开始:

    • 详尽且专业的架构文档:AI 产出的架构设计文档看起来非常完善,甚至比人类写的还要好得多。人类写文档时往往会基于“常识”而忽略一些细节或内部约定,但 AI 会写得非常详尽,不遗漏细节。
    • 惊人的开发速度: 在纯开发阶段,AI 展示了极高的效率。内部估算,如果是由人类工程师完成该项目的纯开发工作,大约需要 15 到 20 人日,而 AI 仅用了 3 天时间 就完成了所有的代码编写。
    • 高质量的代码注释与异常处理: 我们平时为了追求开发速度,有可能对注释和异常处理的相对简单,但 AI 编写的代码在注释质量和异常处理机制方面比人类工程师开发出来的要好很多。
    • 清晰的设计与逻辑分层:AI 在接收到相关知识后,能够定义出非常清晰的类图、方法、依赖关系和分层结构。它会先进行详细的设计,明确每个类的职责,初步看过去代码质量非常不错。
    • 代码初期的易读性:AI 初步生成的代码逻辑相对直接(偏“面条式”代码),没有过度使用复杂的架构模式或抽象,这使得人类在第一眼看过去时觉得逻辑非常清晰且好理解。

    不过这样的蜜月期,并没有维持多久,很快我们开始遇到各类问题,加班也多了起来。

    遇到的问题:

    1. 技术与代码质量问题
    • 逻辑伪造与“将错就错”:AI 在面对缺失的知识、错误的接口文档或注释时,会伪造逻辑或猜测( Mock )返回格式。遵循“垃圾进,垃圾出”( GIGO )原则,如果输入信息有误,AI 的产出必然也是错误的。
    • 错误传播与测试盲区: 如果 AI 基于错误的架构分析生成代码,它也会基于同样的错误逻辑设计测试用例,导致单测和集测无法发现逻辑漏洞。
    • 产生“屎山代码”: 虽然 AI 初步生成的代码看似整洁,但在经过人工点对点的调试修复问题后,代码会逐渐演变成难以维护的屎山代码,。
    • 缺乏企业内部知识: 由于数据安全限制,AI 无法读取既有的私有代码库,且对企业内部定制或自研的框架缺乏了解,导致其难以写出符合要求的代码。
    • 不符合开发规范:AI 编写的代码往往不符合团队内部的开发规范或习惯(如事务处理方式),导致人类工程师在 CR (代码评审)或维护时感到非常困难。

    2. 架构与设计层面的局限
    • 输出不稳定与概率推断: 基于 Transformer 架构的 AI 本质上是概率推断模型,同样的输入和提示词产生的输出是不稳定的。我们为了研究针对本项目最佳的 AI 沟通方式,不断的测试修改各种提示词,花费了不少时间。
    • 上下文限制与“遗忘”:AI 的上下文处理能力有限,在解决具体问题时可能会忘记之前的全局设计,导致代码复用性差,甚至在同一项目中针对相同问题重复编写不同的代码。
    • “只见树木不见森林”:AI 容易陷入局部逻辑,忽略全局影响,例如在修改代码逻辑后忘记更新注释或相关的单元测试。
    • 文档过度冗长:AI 喜欢编写极其详尽、甚至带有重复内容的长文档,这增加了人类阅读和理解的成本,往往 AI 5 分钟输出的内容,我们要花 1 个小时去理解。

    3. 工作流程与效率悖论
    • 工作强度反而增加: 使用 AI 后,程序员的工作时长变得更长、更累,甚至需要工作到凌晨,这与“AI 减负”的初衷相悖。
    • 由于过度约束导致的“犯傻”: 为了约束 AI ,开发人员会定义越来越多的 Agent 和复杂的 Workflow ,但约束过多会导致 AI 出现“过敏”或变得笨拙,丧失了发散性思维的能力。
    • Token 消耗巨大: 复杂的 Workflow 和长指令会导致 Token 消耗量激增(每天消耗上亿 Token ),导致成本异常昂贵。
    • 陷入“面多加水”的死循环: 当 AI 做不好时,人类倾向于增加更多 Agent 或约束,这使得系统越来越复杂,最终效果反而变差。

    4. 心理压力与管理挑战
    • 认知负荷与上下文切换: 领导层可能误认为 AI 能大幅提升生产力,从而给程序员安排更多并发项目,导致程序员需要在多个 AI 窗口和项目背景间频繁切换,造成脑力枯竭,。
    • 巨大的“不安全感”:AI 的自评分往往虚高(比如 AI 设计的架构或算法,我们让 AI 给自己打分结果他给自己打 98 分),但人类很难一眼看出其逻辑中的隐患。由于不理解 AI 某些设计的意图,人类工程师会产生强烈的不安全感和心理压力,。
    • 信息爆炸:AI 产出的海量文档和代码需要人工进行大量审查( Review ),这一过程极其消耗精力。


    后续反思
    1. 明确 AI 的适用场景:
    ◦ 推荐场景: 编写一次性脚本、处理数据报表、编写复杂的 SQL 、整理文档、画图、辅助理解不熟悉的既有代码、查 Bug 、以及编写基础的单元测试和集成测试代码。
    ◦ 限制场景: 涉及核心业务逻辑、复杂资金流、高可用架构设计时,必须由人类主导。
    2. 坚持“人机协作”而非“全权委托”:
    ◦ 建议通过 Web Coding 的方式,让 AI 按照人类提供的模板类和示例代码进行学习和约束。
    ◦ 核心逻辑必须按照团队的开发规范和习惯进行重写,以确保代码的可维护性和安全性。
    idealhs
        1
    idealhs  
       2 天前   ❤️ 10
    感觉你这篇文章也是 AI 的
    codingerj
        2
    codingerj  
       2 天前
    能问下用的具体是哪个 AI 工具吗
    wxiao333
        3
    wxiao333  
    OP
       2 天前
    @idealhs 兄台高见,本人语文不好,高考差点没及格,确实让 AI 帮润色了一下

    @codingerj 不直接点名了,但是是市面上最强的之一
    timespy
        4
    timespy  
       2 天前
    @idealhs +1 ,这种排版的一眼 ai ,反而没有太大阅读欲望了
    forbreak
        5
    forbreak  
       2 天前
    你这个是 ai 润色过的吧。试过纯 ai 编写,一毛一样的问题, 所以一直不能理解他们说的零人工参与 ai 写一个项目。 而且后续还要继续长期更新维护的话,ai 的缺点还会放大。
    digitv
        6
    digitv  
       2 天前   ❤️ 1
    资金流这种复杂的系统也敢用 AI ,只能说你们牛逼,被各种 AI 忽悠瘸了吧。。。
    anytk
        7
    anytk  
       2 天前
    如果 AI 不能为代码的后果负责,为什么会相信 AI 能解决程序员的问题呢
    m1nm13
        8
    m1nm13  
       2 天前
    @wxiao333 不不不,只有最强 opus. 没有之一, 其他之一什么 codex 5.2high 之流在我这早被判定为弱智了
    xujia1998
        9
    xujia1998  
       2 天前
    不是 vibe coding 太累了,是你们公司领导层太傻逼了
    billzhuang
        10
    billzhuang  
       2 天前 via iPhone
    项目背景看下来,即使人做,也会是个屎山。
    tomczhen
        11
    tomczhen  
       2 天前
    假设代码是由人工完成的,但是生产力保持不变,其实还是会出这些问题,只是 ai 让这种假的实现了。
    jimrok
        12
    jimrok  
       2 天前
    模型还不够强,即使把全部底层代码都喂给模型,也没有足够的上下文理解全貌,至少国产模型现在还不够行。今年能达到什么程度不好说。我一般就是 ai 生成个架构,具体功能不对,我就问 ai ,这个功能控制点在哪里,告诉我代码行数,然后我去修复。
    cyio
        13
    cyio  
       2 天前
    首次尝试,后面如果再做新项目,是不是会效率更高、更可控
    wxiao333
        14
    wxiao333  
    OP
       2 天前   ❤️ 2
    @timespy 内容都是本人的工作笔记和团队的复盘会记录整理的,干货满满
    由于本人语文不太好,文章确实是 AI 润色过的,但绝对不是什么垃圾文章,大家放心阅读。
    gorvey
        15
    gorvey  
       2 天前
    vibe coding 只适合个人开发学习使用,生产环境只能当副驾驶
    PbCopy111
        16
    PbCopy111  
       2 天前   ❤️ 2
    为啥不把 AI 当成辅助工具,人写代码,它负责找 bug 或者 else ,为啥要用它写呢。。。。不明白啊,不明白。。。
    xwhxbg
        17
    xwhxbg  
       2 天前   ❤️ 22
    看起来贵司是没有调研过 vibe coding 的 workflow 导致认为 vibe coding 就是跟 AI 聊天导致的问题

    上下文这个是通过 beads 数据库解决的,所有的 commit 和 LLM 的 plan 都会存里面,这样即使上下文 compact 了也会自动取数据库里的东西,能明白某个函数当初为什么这样设计,现在我们改动会如何影响那个设计

    人为调试,这点看起来是因为用 prompt 根 LLM 说不通所以懒得搞了直接人工上,实际上你应该把你调试的过程,用 LLM Prompt 一步一步实现,请 LLM 帮你去调试,例如加日志,启动测试环境等等,最终把这个过程萃取成 skills

    幻觉问题,很显然你们没有任何 rules ,LLM 可以随便撒谎,不做 fact check

    垃圾代码,你需要一个插件去让 LLM 精简代码,参考 https://github.com/anthropics/claude-plugins-official/blob/main/plugins/code-simplifier/agents/code-simplifier.md ,然后在 PR 阶段用 LLM review ,可以有效避免因为概率问题导致的 oneshot miss
    npe
        18
    npe  
       2 天前
    偷偷用就好了,闷声发大财
    iOCZS
        19
    iOCZS  
       2 天前   ❤️ 1
    edenzhang
        20
    edenzhang  
       2 天前
    很有帮助
    bigtear
        21
    bigtear  
       2 天前   ❤️ 1
    好文,清晰的总结了现在 AI 的局限性,与我个人体验一样。看起来文章用 AI 润色过,但内容很有参考性。

    我从 AI 刚出来的时候就在用,新旧项目都用 AI 处理过,从 Claude 3.5 时期用 Cursor 到现在 Claude 4.5 用 CC 、反重力、Cursor 、CodeX ,也算经验丰富吧。

    尝试用 AI 从零开始、和修改现有的许多前后端分离的项目,越到后面 AI 越吃力,根本原因是 AI 现在的上下文窗口长度太小,记不住东西。在解决这个问题之前,只能作为副驾驶,替代人类还尚早。

    楼上给出的解决方案是太理想化了,理论上可行,但在现代项目中,现在流行的各种 Skill 、Rules 都解决不了这个根本问题。必须要人类来主导操刀。越到后面人类介入的次数要越多,Token 消耗数量也是天价。

    但是在 “做出一个像样的东西” 这方面,因为后端可验证,现在基本上是没什么问题了,前端如果解决了自动化测试的问题也只是时间问题。缺点就是代码质量很差劲,容易出现面条代码。

    但是在可预知的未来,AI 迟早会进化出新的范式解决这个问题,编程这个行业已经彻底的要沦为夕阳产业了。各位早日寻找后路吧。
    zhuwd
        22
    zhuwd  
       2 天前
    写的挺好,有些问题也是我们所面临的,用着用着发现我们成 AI 的助手了,被 AI 牵着鼻子走,倒反天罡
    bigtear
        23
    bigtear  
       2 天前
    @xwhxbg 很不错的实践,学习了👍
    54xavier
        24
    54xavier  
       2 天前
    昨天 leader 给我看了他用 Qoder 开发的一个项目,通过 ai 实现全栈开发,并且可以自动测试代码。他感觉成就满满,ai 很好用,不过在我的眼里就感觉界面很粗糙,时不时点一点还有报错,不知道他为什么那么崇尚 ai 。
    Clannad0708
        25
    Clannad0708  
       2 天前
    @xwhxbg #17 老哥很细节啊,有没有那种最佳实践的方式,提到了你用到的所有的部分,最近想做 vibe coding 但是只会聊天......你提到的这些都没接触过。。
    powerkai
        26
    powerkai  
       2 天前
    很好的文章 很有启发
    Erroad
        27
    Erroad  
       2 天前   ❤️ 3
    @54xavier #23 因为 leader 不亲自做交付,不知道验收需要精细到什么程度。他的预期只是跑 demo
    yangyaofei
        28
    yangyaofei  
       2 天前
    问个问题, 这里面整个程序的框架的设计是人做的还是只是输入需求/测试/spec 让 agent 自己来?

    如果没有框架设计的话, 直接将开发任务细分到 class/function 级别, 会不会得到不灾难的效果
    ytmsdy
        29
    ytmsdy  
       2 天前
    其实我觉得大项目,大公司,直接起手就是 vibe coding 是有问题的。因为里面的逻辑太复杂了,AI 无法全面理解,或者说是人无法和 AI 全部说清楚。所以会导致 AI 对问题了解不足。
    我觉得目前比较好的方式是 cursor 的 plan 模式,把需求拆分成各个功能点,然后按照功能点生成实施 plan ,实施完毕以后对新增的代码进行 review 。
    vibe coding 其实对于小项目真的很友好,聊聊天,把业务逻辑说清楚,功能就出来了。
    prosgtsr
        30
    prosgtsr  
       2 天前
    和我的感觉差不多,可能我也是不擅长驾驭 ai 工具吧

    我现在觉得用 ai 最舒服的地方就是让他帮我 review 代码,这个确实省心省力,人类在很多变量之中写代码,很容易把一个变量当作另一个变量。
    dcatfly
        31
    dcatfly  
       2 天前   ❤️ 3
    AI 擅长做的事情是可以验证结果的事情。

    这句话的意思是说,AI 不一定能够把事情一次性做对,但如果能给它明确的结果或问题反馈,它就可以不知疲惫地一直去修改,直到满足结果。

    什么是易于验证的事情呢?
    比如你让它设计一个模块,规定输入是 A ,得出的结果必须是 B ,那这个模块就是一个易于验证的任务。

    什么是不能验证的事情呢?
    比如你让它设计一个架构,设计出来的架构是好是坏,往往没有办法通过技术手段直接验证,主要还是靠人+agent 的 review ,由人来评估哪里有问题,再反馈给它进行修改。

    所以当你遇到 AI 的行为不满足你的预期时,首先要想的应该是:这个问题能否通过自动化的方式,让 AI 知道他的成果的与你的预期差异在哪里?
    1. 如果可以自动化地反馈结果:那这个问题大概率是可以被 AI 解决的。
    2. 如果没办法通过自动化形式告知:你能做的就是给它一些好的示例进行参考。但最终结果仍需要你亲自检查,才能保证符合心意。
    superJava
        32
    superJava  
       2 天前
    我也刷到过 19 楼的视频,op 就是作者?还是把视频文案用 AI 润色了一下拿来发?
    livib
        33
    livib  
       2 天前
    AI 给企业减负
    skylee6900
        34
    skylee6900  
       2 天前
    又是 ai 文 ,什么鬼 不会写就别写啊
    aoyi
        35
    aoyi  
       2 天前
    是多少人天的项目?了解一下项目规模
    aoyi
        36
    aoyi  
       2 天前
    这篇 AI 实践写的有看头,不是那种领导想象出来的,很有帮助
    SpiritQAQ
        37
    SpiritQAQ  
       2 天前
    感谢分享
    cohen121
        38
    cohen121  
       2 天前
    “公司内部库不开放仅提供示例给 AI 参考”, 你把这些前提条件给人来写也写不出正确代码呀。
    s5s5
        39
    s5s5  
       2 天前
    感谢分享,我甚至感觉和 AI 交互不能超过 10 次,超过了他就不可信。
    maclee
        40
    maclee  
       2 天前
    感同身受,从评论中学到好多
    shenxufei315
        41
    shenxufei315  
       2 天前
    故事骨架如果不是 AI 编的那就太扯了,没有通过整体验证就交给 AI 做主力,出了问题人担责,当然难受。如果主题内容都是 AI 编的,这文章就有点浪费大家时间了
    qianckjuan
        42
    qianckjuan  
       2 天前
    感谢分享
    rich1e
        43
    rich1e  
       2 天前
    vibe coding 可以加快开发效率,甚至开发从来没有学习过的东西。
    但是,如果对 vibe coding 一知半解,那么绝对是在制造“垃圾”。

    #17 讲到点子上了,但是实际执行,rules 根本不可能尽善尽美。最多,做到一些通用逻辑的规范,减少幻觉问题。

    期望依靠 vibe coding 想打造一款产品级应用,按照目前的科技来说,痴人说梦。
    huaweii
        44
    huaweii  
       2 天前 via Android
    不是,国内 AI 使用者这么草台班子的吗?最基本的,大语言模型的通病,上下文过长会降智和 lost-in-middle 的问题去年各种论文不看?

    那么也可以,硅谷各种 AI 大佬的访谈,多方共识就是一年以来的 AI 实践,洋大人的技术团队早就发现了 AI coding 虽然显著加快了项目从 0 到 1 的过程,但后续 pr 反而需要更多人工介入审查。

    国内的领导土鳖居多,远离一线+吃老本+刚愎自用,领导班子主导滥用 AI 的结果就是不仅增加公司成本,还裁员,结果员工 996 的现状没有改变😁
    amiaaaz
        45
    amiaaaz  
       2 天前
    虽然但是,AI 风浓郁的文章真的会让人失去阅读兴趣
    Plutooo
        46
    Plutooo  
       1 天前
    @xwhxbg #17 感谢大佬分享,同时请教大佬主要 vibe coding 项目场景是怎么样的。

    私认为从 0-1 或业务属性不重的项目可能适用你说的场景,个人实测下来老项目和偏业务项目确实会存在 OP 说到的问题,最简单的就是:老项目不会有 commit 和 LLM plan 依赖口口相传,LLM 并不清楚系统里面已经实现了什么,为什么这么实现,LLM 编码过程中我们无法能够将每一步可复用或存在定制化实现都告诉 LLM ,LLM 很容易就自行实现一套逻辑。这类问题该如何解决呢

    我觉得 vibe coding 最大的问题仍是“尽管我们能描述清楚需要什么、接下来怎么做,但 LLM 仍无法准确知道当前已有什么、按历史规范应当怎么做”。

    当然,完善文档、prompt 是一个可供选择,但当前普遍变味的敏捷开发,加上人总有疏漏的时候,一旦有问题流到了验收之后才暴露,那整体 review 和修复的成本都是几何倍数的增加
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1060 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:32 · PVG 02:32 · LAX 10:32 · JFK 13:32
    ♥ Do have faith in what you're doing.