跟 AI 写代码越写越乱?我靠这套「Vibe Coding」思路彻底治好了幻觉屎山

前阵子我让 AI 帮我写个 React 待办清单,结果给我整懵了。

输入框里敲了一句 "帮我写个 React 待办页面,支持新增删除",回车一发,十几秒就给我吐出来一百多行代码。我粘到项目里,哎居然能跑,当时还觉得 AI 真好用。结果想加个样式,点开代码一看人傻了:字段一会儿叫title一会儿叫text,不知道什么时候偷偷塞了本地存储逻辑,还顺带做了个筛选功能。代码全揉在一个组件里,缩进乱得像麻花,想改个按钮颜色都得找半天。

说实话,那时候我觉得 AI 写代码也就这样 ------ 看起来像模像样,一跑也能跑,真要维护起来比屎山还难下手。直到后来我翻到 Vibe Coding 的思路,才反应过来:不是 AI 不行,是我从根上就用错了。

原来我从第一步就用错了:规划才是一切

我之前总觉得,用 AI 写代码不就是把需求说清楚,等它输出就行?直到我看到个比方:你不会让刚入职的新员工第一天就直接写核心业务,总得先给人看一遍技术规范、捋一遍业务流程吧?对 AI 也是一个道理。

你上来就扔一句 "帮我写个 XX 功能",它只能靠猜,猜你的技术栈、猜你的代码风格、猜你要不要加额外功能,猜来猜去可不就幻觉满天飞了。

所以 Vibe Coding 的第一步,也是最核心的一步:先做规划,绝对不许 AI 一上来就写代码

我当时就拿那个待办清单试了试,给 AI 发了这么一段:

plaintext 复制代码
遵守胶水编程思维:优先使用成熟方案,避免凭空造逻辑
第一个阶段:只做规划,禁止输出任何代码
1. 确认技术栈:
React 19 + TailWindcss + useState
2. 梳理功能边界
- 新增待办、删除待办、切换完成状态
- 不做本地持久化、筛选、拖拽功能
3. 拆分模块
输入框组件、待办条目组件、列表容器组件
4. 定义数据流
useState 存储 task 数组 数据结构:
{id, text, completed}
5. 输出这份完整规划,等待我确认无误后,再分段实现代码

发过去之后 AI 老老实实列了完整的规划文档,半行代码都没敢写。我扫了一眼,技术栈对得上,功能边界写死了 "不做什么",数据结构也定死了text字段,模块拆分也合理,确认没问题了才让它开始写代码。

规划到底在防什么?

别觉得这步是多此一举,我后来复盘了一下,就这短短几百字的规划,直接堵死了三个最常见的坑:

  • 划死功能边界,防止 AI 擅自加戏,把一个简单 demo 膨胀成臃肿的半成品
  • 提前拆好模块,逼 AI 按组件输出代码,而不是一坨揉在一起的面条代码
  • 定死数据结构,从根源上解决字段幻觉 ------ 再也不会一会儿title一会儿content

我自己的小习惯 规划阶段我会反复强调 "禁止输出代码",多花三五分钟改规划,比后面花半小时在屎山里找 bug 划算太多。

就这么个简单的操作,最后生成的代码结构清清爽爽,每个组件各司其职,我想改样式直接找对应组件就行,跟自己写的结构没差多少。

「胶水编程」:把 AI 的幻觉风险降到最低

聊完规划,再说说另一个我觉得最实用的思路 ------ 胶水编程,这个点我真是踩过坑才深有体会。

之前想给待办清单加个拖拽排序,我想都没想就给 AI 发了句 "帮我写个拖拽排序功能"。结果 AI 当场给我手写了一套拖拽逻辑:监听鼠标事件、计算元素坐标、手写排序算法,看起来特别厉害。我粘进去一跑,好家伙,快速拖动就乱序,松手位置会跳,边缘元素还会拖出容器,各种 bug 修得我头大。

那时候我还吐槽 AI 写的逻辑不靠谱,后来才明白:不是 AI 不靠谱,是我让它做了它不擅长的事

到底什么是「胶水代码」

我理解的胶水编程,打个比方就是拼乐高: 成熟的开源组件就是厂家生产好的乐高零件,经过千万人验证,尺寸精准、不容易坏;而我们和 AI 要做的,不是自己在家烧塑料造零件,而是写少量的 "胶水代码",把这些现成零件粘在一起,让数据在组件之间流转起来。

为什么这么做能减少幻觉?很简单:AI 写的代码越少,出错的概率就越低。核心逻辑全是社区验证过的开源库,AI 只负责写十几行衔接、适配的代码,就算出问题也一眼就能找到。

错误姿势 vs 正确姿势

还是拿拖拽排序举例子,两种写法的差距真的天差地别。

错误姿势(从零造零件,高幻觉风险):

plaintext 复制代码
帮我写 React 待办清单的拖拽排序功能

正确姿势(胶水思维,只用成熟组件):

plaintext 复制代码
给待办列表增加拖拽排序
1. 选用 react-beautiful-dnd 实现
2. 不要手写拖拽底层逻辑,只做组件衔接和数据流转
3. 先给出安装命令,再基于现有 TodoList 组件做适配

我当时换成第二种写法,AI 输出的代码量直接少了三分之二,核心逻辑全交给库去处理,我只需要对接一下数据。粘进去跑了一下,拖拽丝滑,边界情况也全没问题,连调试都没花两分钟。

说实话,想通这点之后我写代码轻松了太多。以前总觉得什么都让 AI 写才叫厉害,现在反而觉得:能不用 AI 写的逻辑就不用,能抱开源大腿就直接抱,把 AI 的工作量压到最少,出来的代码反而最靠谱。

越用越顺手:让 AI 自己慢慢进化

除了规划和胶水思维,还有个能让 AI 越用越好用的小技巧,说穿了也简单:把每次的经验沉淀下来,让 AI 跟着你的习惯迭代

最开始我每次写代码都要重新说一遍规范,比如 "用函数组件""用 Tailwind""注释不要写太多",说多了也烦。后来我就专门存了一个 md 文件,把我的技术栈偏好、代码规范、踩过的坑都记在里面,每次开新项目先把这份规范喂给 AI,相当于给它做了一次岗前培训。

再往后我还会加一步:每次 AI 写完代码,我都会让它自己复盘一下 ------ 这次的代码哪里不符合规范,哪里可以优化,然后把结论更新到那份规范文件里。相当于让 AI 自己给自己提要求,下次输出就更贴合我的习惯。

就像很多人说的 α 提示词和 Ω 提示词:一份告诉 AI 该怎么干活,另一份负责打分复盘、优化规则。不用什么复杂的工具,一个普通的 markdown 文件就能搞定,用的次数越多,AI 就越懂你的风格,到后面基本改都不用怎么改。

我踩过的几个坑,你们别再踩了

这段时间用下来,我也踩了不少坑,挑几个最容易中招的说说。

第一个坑:规划写得太模糊。别写 "做一个简单的待办页面",你眼里的 "简单" 和 AI 眼里的 "简单" 根本不是一回事。一定要写死 "做什么、不做什么",把边界划得明明白白,AI 才不敢瞎加功能。

第二个坑:忍不住让 AI 一次性写完所有代码。一整个页面全扔给 AI,出来的大概率是一坨揉在一起的代码。最好拆成组件一个一个写,写完一个核对一个,不符合规划就立刻改,攒到最后再改就晚了。

第三个坑:迷信 AI 能写复杂底层逻辑。比如虚拟列表、复杂动画、自定义拖拽这种,边界 case 多到数不清,AI 手写十个有八个有 bug。这种时候别头铁,老老实实找成熟开源库,让 AI 做胶水衔接就行。

最后说两句

其实折腾这么久我也明白了,Vibe Coding 本质上不是教你怎么让 AI 写更多代码,而是教你怎么跟 AI 协作,把它放在合适的位置上。

说到底就三件事最关键:别上来就要代码,先把规则和规划说清楚;少让 AI 从零造轮子,多做胶水拼接的活;攒好自己的规范,让工具越用越顺手。

当然这也不是万能的。如果是完全创新、没有现成方案的核心业务逻辑,该自己写还是得自己写,AI 最多打个辅助。但对于日常业务开发、写 demo、搭页面这种场景,这套思路真的能少踩很多幻觉的坑。

你们平时跟 AI 协作写代码都有啥好用的小技巧?或者踩过什么离谱的幻觉坑?评论区唠唠,我也学点新东西。

相关推荐
虹科网络安全12 小时前
使用艾体宝 IOTA 10 CORE+ 监控企业网络中的 AI 流量
网络·人工智能
朝阳资本论12 小时前
群核科技:从空间设计龙头到物理AI“卖水人”的升维之战
人工智能
七夜zippoe13 小时前
为什么 2026 年每个 Java 团队都该懂 AI Agent
java·开发语言·人工智能
举个栗子。13 小时前
SwarmForge:AI 智能体协同编程框架,让多个 Agent 在隔离工作区并行协作
人工智能·开源·ai编程
AIGC小尼13 小时前
Windows 本地 AI 漫剧全自动生产线部署完整教程(零基础、全指令、带源码、模型配置、排错方案)
人工智能·windows·ai漫剧
合米AI SOP系统13 小时前
传统产线如何快速上马落地 AI 防错?合米科技 AI SOP 7天即可上线。
大数据·人工智能·科技
思录Echo13 小时前
什么决定具身智能的最终走向?多技术路线与落地现实辨析
大数据·人工智能
ShallWeL13 小时前
Orin 上多模型常驻与显存预算
人工智能·嵌入式硬件·nvidia·orin
xiaohaiAIgeo13 小时前
【2026年】AI监控加行为分析守护实验室安全
大数据·人工智能·科普知识
IT_陈寒13 小时前
Python的多线程就是个假把式,我算是体验到了
前端·人工智能·后端