SDD+Harness让Vibe Coding走向工程化

0 评论 125 浏览 2 收藏 23 分钟

AI写代码的蜜月期已经结束,67%的开发者表示AI生成的代码需要大量人工修改。问题不在AI,而在我们还在用“荒野飙车”的方式开跑车。本文深入解析Vibe Coding的六大特征与三大痛点,并介绍SDD规范驱动开发与Harness工程护栏体系,教你如何给AI装上导航和护栏,让AI编程真正落地生产环境。

你有没有算过,用AI写代码这半年,到底省了多少时间,又多了多少麻烦?

我猜很多人的账本是这样的:第一天,跟AI聊了两小时,一个原本要三天的后台管理系统跑起来了,你兴奋地发朋友圈说”AI编程真香”;第三天,你发现登录模块没做验证码,密码是明文存的,让AI改,它直接把数据库从MySQL换成了MongoDB;第七天,你试图在这个项目上继续迭代,AI却像失忆了一样,把之前约定好的架构忘得一干二净;一个月后,这个项目成了谁都不敢碰的”黑盒”——没有文档,没有测试,只有你和AI那几百轮零散对话的记录。

这不是你一个人的困境。2025年下半年到2026年初,”氛围编码”(Vibe Coding)的蜜月期正式宣告结束。Stack Overflow的调研显示,67%的开发者表示AI生成的代码需要大量人工修改;GitHub的数据更扎心——AI生成代码首次通过CI的比例只有28%。那些曾经鼓吹”不用写代码了,只要会说话就行”的人,现在开始沉默了。而另一批人则走向了另一个极端:觉得AI编程就是玩具,永远上不了生产环境。

但真相是什么呢?真相是,AI写代码本身没问题,问题出在我们还在用”荒野飙车”的方式,开着一辆本可以上高速的跑车。

一、Vibe Coding的狂欢与代价:我们到底在兴奋什么,又在害怕什么

先回到起点。2025年2月2号,卡帕斯发了一条推文,大意是”当你完全沉浸在这种氛围里,你会忘掉代码的存在”。24小时内,这条帖子浏览量破180万。一个前OpenAI联合创始人、深度学习教父级的人物说自己不看代码了,这意味着什么?

意味着AI代码生成能力确实到了一个质变的临界点。

这就是Vibe Coding的核心——你不再一行行手写代码,可以用自然语言告诉AI”我要什么”,AI负责”怎么做”。你想做个可拖拽排序的看板?直接说”帮我做个可拖拽排序的看板”,不用告诉它要用哪个前端框架、怎么实现拖拽逻辑、数据怎么持久化。这就像一个顾客走进饭店说”我要吃水煮肉片”,厨师负责洗菜、切菜、掌握火候,你只管品尝和反馈。

这种体验确实爽。效率提升是实打实的——做个官网从七天压缩到两小时,这种指数级加速谁不爱?但狂欢背后,隐患早就埋下了。

Vibe Coding有六大特征:意图驱动、自然语言作为接口、非一步到位(需要反复迭代)、从写代码变成审代码、指数级加速、容错包容。

听起来都很美好,对吧?但把这六个特征放到团队环境里,问题就爆发了。

第一个痛点是输出质量不稳定。同样的需求,上午和下午问AI,得到的代码可能完全不一样。你明明昨天跟它约定好了用MySQL,今天它突然给你换成了MongoDB,还振振有词地说”这个更适合你的场景”。程序员最追求确定性,但AI给你的却是薛定谔的代码。

第二个痛点是缺乏规范约束。AI写代码有时候很”发散”——这次生成的代码风格是内聚型的,下次又变成扩展型的;这个模块用了工厂模式,那个模块直接new了一个实例。没有统一的架构约束,代码结构就像一团乱麻。

第三个痛点更致命:知识传递断裂。五个工程师各自跟AI聊天开发,合并代码时发现有两种状态管理方式、三种API命名规范、四种错误处理逻辑。更可怕的是,当那个用Vibe Coding写核心模块的工程师离职后,他留下的不是文档,不是测试,只有几百轮碎片化的对话记录。新人来了,连问都不知道问谁。

所以你现在看到社区里的撕裂:反对派说Vibe Coding只能做玩具,支持派说效率提升肉眼可见,中立派说”不是AI不行,是你们不会用”。其实三方都没错,错的是我们以为”会说话”就能搞定软件工程这件事。AI确实是个厨神,但你如果不给它菜谱,不给它操作规范,每次做出来的菜味道都不一样,这饭店谁敢开?

二、SDD:给AI一本”菜谱”,而不是让它自由发挥

SDD全称Spec Driven Development,规范驱动开发。说白了,就是在让AI写代码之前,先写一份规范文档(Spec)。这份文档不是那种动辄几百页没人看的技术白皮书,而是一份结构化的、精确的”施工图纸”——API怎么定义、数据模型长什么样、命名规范是什么、测试用例覆盖哪些场景、验收标准是什么。

很多人听到”写文档”三个字就头疼:”我都用AI写代码了,不就是为了省事吗?怎么还要先写文档?”

别急,这里有个关键区别:SDD不是让你回到手写文档的时代,而是让你用Vibe Coding的方式生成文档。你可以跟AI说:”我要做一个用户登录模块,你觉得应该包含哪些功能?API怎么设计?数据模型怎么定义?”AI帮你生成第一版Spec,你审阅、修改、确认,然后让AI基于这份Spec去写代码。

这有什么区别?区别大了。

以前你直接说”帮我做个用户登录”,AI确实能跑出一个登录页面,但大概率没有验证码、密码明文存储、缺少二次确认。你发现问题后,只能贴创可贴式地修修补补。而有了Spec,AI就像拿到了一份带检查清单的任务书——”必须有验证码”、”密码必须加密”、”需要二次确认框”——逐条实现,逐条验证。

有个真实案例特别能说明问题。Hacker News上有篇热文叫《我们用Vibe Coding做了MVP,差点把公司搞死》。文章提了三个致命痛点:一是AI”失忆”,200轮对话后数据库从PostgreSQL换成了MongoDB;二是五个工程师各自为政,合并代码时冲突爆炸;三是核心工程师离职后,留下的程序没人敢接手,因为没有文档,只有碎片化的对话记录。文章最后总结了一句特别扎心的话:”我们最大的后悔,就是没有写Spec。”

SDD解决的就是这些问题。

它首先确保了代码一致性。同一个Spec模板,团队所有人共享,AI生成的代码风格、架构模式都是统一的。

其次,需求传递精确了。你不再需要担心AI”理解错了”,因为Spec就是标准答案。

第三,知识可以沉淀。Spec文档提交到仓库,新成员看文档就能理解项目,而不是到处找人问”当时为什么这么设计”。

第四,问题可追溯。出bug了,先看Spec是怎么定义的,是设计问题还是实现问题,一目了然。

数据也能佐证效果。有调查显示,使用SDD后,代码一次通过率从35%提升到78%。这不是因为AI变聪明了,而是因为AI终于知道”规矩”是什么了。

当然,SDD也不是万能的。它解决不了AI模型本身的能力上限——你给再详细的Spec,低智模型也理解不了;它也替代不了人类的创意和直觉,技术选型和系统架构这种需要结合业务实际情况的决策,还得资深工程师来拍板。SDD本质上是方法论层面的升级,它规范的是”人怎么跟AI协作”,而不是提升AI本身的能力。

三、Harness:给AI装上”护栏”,防止它跑偏

如果说SDD是给AI的导航,告诉它”往哪走”,那Harness就是高速公路的护栏,确保它”不会开到对面车道去”。

Harness全称工程护栏体系,是一种为AI编程建立自动化约束和质量保障的工程方法。它的核心价值在于:把以前靠人工审查、靠资深架构师把关的环节,全部自动化。

想象一下以前的开发流程。AI生成代码后,你需要人工检查:变量命名是不是拼音?有没有符合驼峰规范?架构有没有跑偏?是不是偷偷用了不该用的技术?测试能不能跑通?这些检查费时费力,还容易遗漏。而Harness就是把团队的编码规范、架构约束、质量标准写成配置文件,让机器自动检查。

Harness的体系可以概括为六个模块:

第一个是自动化约束。 把团队的规矩写成规则文件——命名用驼峰还是下划线、目录按功能划分还是按领域划分、包导入顺序怎么排。AI每次生成代码前都先读一遍这些规则,就像工人上岗前先看操作手册。

第二个是代码规范管理。 AI生成代码后,系统自动扫描:变量名是不是拼音?是否符合命名规范?不符合就直接打回重写,不需要人盯。

第三个是门禁系统。 这是防止AI”偷换架构”的关键。你明明约定好用MySQL,AI聊着聊着给你换成MongoDB?门禁直接拦截。你约定好用依赖注入,AI偷偷new了一个实例?门禁不让过。

第四是代码质量监控。 持续监测AI输出的代码复杂度、重复率、测试成功率,一旦低于阈值就告警。这就像给AI的产出装了一个实时血压计。

第五是文档体系管理。 所有的Spec文档、规则文件都纳入版本管理,确保团队每个人看到的都是同一个版本的规范,不会出现”我这边的规则还是上周的版本”这种尴尬。

第六是规范流程。 定义从Spec编写到Review到AI生成到验收的标准流程,确保五个人协作不会出现六种写法。

这六个模块形成一个闭环:定义规则→自动检查→发现问题→优化规则→再检查。越用越顺手,越用越精准。

Harness还可以浓缩为三层护栏模型,记住这个就能理解它的精髓:

第一层是约定层。 最基础的,告诉AI”我们团队的规矩是什么”。通过规则配置文件实现,相当于新员工入职第一天发员工手册。

第二层是自动化层。 光有规矩不够,还得有人检查。但不是靠人,而是靠机器自动检查。提交代码前自动扫描安全漏洞、风格问题,不符合规范的根本上不了库。

第三层是验证层。 最终的质量关卡。自动化测试跑一遍,确认功能正确;AI交叉检查逻辑是否合理;最后对照Spec里的验收标准逐条打勾。三层都通过,代码才算合格。

这三层是层层递进的关系:定规矩、查规矩、验结果。有了这套体系,AI编程就从”碰运气”变成了”有保障的稳定产出”。数据显示,使用SDD+Harness后,代码合并冲突减少60%,Code Review时间缩短45%。原因很简单:规矩统一了,检查自动化了,人只需要看核心逻辑,自然又快又稳。

四、三者到底是什么关系?别再非黑即白了

聊到这里,必须澄清几个社区里常见的误区。因为太多人把这三者的关系搞混了,要么觉得SDD是Vibe Coding的倒退,要么觉得用了SDD就不用Vibe Coding了。

误区一:SDD替代了Vibe Coding。

大错特错。SDD不是让你回到手写代码的时代,而是Vibe Coding的进化版。它保留了自然语言对话的灵魂,只是给这个灵魂穿上了工程师的铠甲。变的不是交互方式,而是增加了工程规矩。

你可以把这三个概念放到一个坐标系里理解:

  • 横轴是交互方式,从手写代码到自然语言;
  • 纵轴是工程化程度,从无约束到有约束。
  • 左下角是”牛仔编程”——手写代码还没规范,想到哪写到哪;
  • 左上角是传统编程——手写代码但有完整工程规范;
  • 右下角是原始Vibe Coding——自然语言交互但毫无约束;
  • 右上角才是我们想要的——自然语言交互+工程规范约束。

从右下角到右上角,我们没有回到左边的手写时代,而是在保持AI交互效率的同时,增加了规范保障。这就像以前你在荒野上开车,虽然自由但容易翻车;现在上了高速公路,有车道线有护栏,你反而可以放心踩油门,开得更快更稳。

误区二:SDD太重,会降低效率。

表面上看,写Spec确实多花了一二十分钟。但你想想,没有Spec时,你跟AI来回改几十轮,每一轮都等他生成、发现问题、再修改,可能一整天都耗在一个功能上。

而有了好的Spec,AI一次性生成高质量代码,一到两轮就能定稿。Spec的复用率还能达到70%以上,项目里大部分规范约束下次直接拿来改改就行。前期投入20分钟,节省的可能是8小时的返工时间。这笔账怎么算都是赚的。

误区三:Harness只适合大团队,个人开发者用不上。

恰恰相反。个人开发者更容易犯低级错误,也更容易出现”今天一个风格,明天一个风格”的情况。Harness帮你保持纪律和一致性,哪怕你过几个月回头看自己的代码,也不会觉得陌生。再自律的人也需要闹钟,你不能因为相信自己能早起,就真的不用定闹钟。

误区四:AI越强,越不需要规范。

这是最容易踩的坑。AI越强大,生成代码的速度越快,如果没有规范约束,一周之后你的代码库就是一座垃圾山。就像赛车跑得越快,旁边的护栏越重要,否则很容易飞出赛道。

所以记住这个核心认知:Vibe Coding、SDD、Harness是层层递进的增强关系。

Vibe Coding是基础层,解决的是”人怎么跟AI沟通”的问题。没有自然语言交互,一切无从谈起。SDD是方法论层,解决的是”AI该往哪个方向走”的问题,通过结构化约束让AI不再自由发挥。Harness是工程保障层,解决的是”怎么确保AI没跑偏”的问题,通过自动化检查守住质量底线。

用开车的类比:Vibe Coding是你得会开车,会踩油门打方向盘;SDD是导航系统,告诉你目的地在哪、走哪条路;Harness是高速公路护栏,保证你不翻车、不跑偏。会开车+有导航+有护栏,你才能又快又安全地到达目的地。

三者缺一不可。没有Vibe Coding,你跟AI说不明白需求;没有SDD,AI不知道规矩;没有Harness,AI知道了规矩也不一定会遵守。

五、怎么落地?记住这五步

理论说了一堆,实际工作中怎么用?其实可以浓缩成一个公式和五步流程。

公式很简单:规范输入(SDD)+ 自动约束(Harness)= 可控的高质量AI编程体验。

五步流程如下:

第一步:需求对话。 这是Vibe Coding的灵魂,用自然语言跟AI沟通需求。但注意,不是让AI直接生成代码,而是让AI帮你生成Spec文档。你可以说:”我要做一个用户登录模块,包含验证码、密码加密、二次确认,API怎么设计比较合理?”让AI帮你梳理出结构化的需求。

第二步:Spec生成。 AI根据你的需求描述,输出一份包含API定义、数据模型、测试用例、验收标准的规范文档。你需要花时间审阅、确认,对模糊项给出明确意见。这份Spec就是后续开发的”宪法”。

第三步:代码实现。 AI读取Spec和Harness的规则文件,在双重约束下生成代码。这时候AI不再是自由发挥,而是”按图施工”。

第四步:护栏检查。 代码生成后,自动触发Harness的检查链:代码风格合不合规?架构有没有跑偏?约定的技术栈有没有被换掉?安全扫描通不通过?全部自动化执行,不通过直接打回AI重写。

第五步:验收对照。 按照Spec里定义的验收标准逐条检查,每条都通过才算完成。这是一个质量闭环,确保交付物符合预期。

这五步走完,你会发现一个有趣的转变:你的时间从”事后修bug”转移到了”事前防bug”。以前你花80%时间调试AI生成的烂代码,现在你只需要花20%时间把Spec写清楚,剩下80%的时间AI会帮你高质量地完成。

有句话说得特别好:SDD和Harness没有让我们变慢,只是把精力从修bug转移到了防bug。这才是工程化的本质。

AI编程这件事,发展到现在已经很明显了:它不是昙花一现的技术玩具,而是正在重塑整个软件开发的生态。

但重塑的方式,不是让我们放弃工程规范、回到”野生编程”的时代,而是让我们在保持自然语言交互效率的同时,把过去几十年积累下来的工程化经验——规范、约束、质量保障——重新装回来。

Vibe Coding给了我们速度,SDD给了我们方向,Harness给了我们安全。三者合在一起,才是AI编程的完整图景。

所以下次当你觉得”AI写的代码真烂”的时候,不妨先问问自己:我给它导航了吗?我给它设护栏了吗?如果没有,那翻车的可能不是AI,而是我们自己。

毕竟,再好的跑车,上了路也需要看导航、守交规。AI编程的下半场,比的已经不是谁更会”聊天”,而是谁更懂怎么给AI”立规矩”。

本文由 @王耀亮 原创发布于人人都是产品经理。未经作者许可,禁止转载

题图来自Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!