上周,技术群里一位老哥深夜发出了一声穿透灵魂的咆哮:

“用 AI 写代码,开局感觉自己像坐上了马斯克的 Space X 准备火星登月;写到中期发现自己是在屎坑里踩地雷,改一个 Bug 炸出三个连环雷;到后期项目彻底失控,我让它调个业务接口,它特么给我返回了一段《论语》:‘朽木不可雕也’……”

当时看到这段话,我当场把大腿拍得一片通红——这特么不就是我第一次体验 Vibe Coding(氛围感编程)时的真实写照吗?!

刚开局时,指点江山,觉得自己是键盘上的钢铁侠,AI 就是我那百依百顺的贾维斯;

写到中期,需求乱飞,代码逐渐演变成“意大利面拌混凝土”,多看一眼都是对眼睛的亵渎;

到了后期,整个项目沦为门捷列夫元素周期表,越改越烂,最后只能在深夜里含泪删库、推倒重来。

开局钢铁侠,后期火星文
开局钢铁侠,后期火星文

但咱得说句公道话:AI 这玩意儿,本质上就是个莫得感情的“赛博砌砖机器人”。

你让它搬砖,它绝对不会多嘴问一句:“老板,这面墙明天会不会塌?”或者“咱们的承重结构用薯片搭合理吗?”——对不起,这都不在它的 KPI 里。你让它往东,它绝不往西;你让它在流沙上盖帝国大厦,它也闭着眼睛照干不误。

所谓的“代码屎山”,就是你和 AI 这样一铲一铲、兢兢业业、充满信任地堆出来的。

下面这 8 条“防屎秘籍”,是我无数次跪在键盘上、对着报错信息磕长头磕出来的血泪总结。掌握它们,你就能从“屎山搬运工”摇身一变,成为真正的“AI 编程总指挥”。

01 别急着让 AI 飙车,先画好“藏宝图”

【经典作死姿势】:新建个空项目,张嘴就是:“来,帮我做个跨时代电商系统,要带登录注册购物车和 AI 推荐算法。”

AI 听完二话不说,键盘敲得火星子直冒,看起来效率拉满。实际上呢?你是在流沙上搞违章建筑。写着写着,模块分家、数据流打架、文件目录比女朋友的购物车还乱。因为没有提前规划,AI 每次都是根据当下那一丁点上下文自由发挥,导致代码风格逐渐分裂,逻辑开始左右互搏,最后项目库比你的感情史还要复杂。

正确姿势:先让它画设计图,你点头了它才能动工。

💡 Prompt 降妖咒:

“我要做一个 SaaS 产品,核心功能是 XXX。

先别写任何代码! 帮我设计整体架构:功能模块、数据流向、文件目录结构、技术栈选择,先输出一份详细的架构方案。

在我点头说‘Ready’之前,你敢偷偷写一行代码,我就去拔了你的服务器网线。”

铁律:架构是轨道,功能是列车。轨道没铺好就盲目飙车,必定翻进臭水沟——而且 AI 是不会帮你打 120 的。

02 给 AI 立个“家规”,不然它天天精神出轨

你要明白,AI 的记忆力堪比一条喝多了的野生金鱼。还是那种宿醉了三天、连自己家鱼缸长啥样都忘了的品种。

上个对话你千叮咛万嘱咐让它用 TypeScript,下一个新对话它就悄悄给你换回了 JavaScript;变量命名一会儿驼峰式,一会儿下划线蛇形走位;注释风格更是从“优雅散文”直接降级为“外星火星文”。这种前后不一致,就是屎山倒下的第一铲土。

解药:在项目根目录整一个全局的 Project.md(开发宪法),把规矩死死裱在墙上。

里面必须写清:核心技术栈、文件命名规范、禁用语法、注释风格。最后最好再附带一句:“你是一个有极度代码洁癖的顶级架构师”——别笑,这句话对 AI 有奇效,跟训狗一个道理,得先给它塞个高大上的人设。

每次开新对话,别废话,第一件事就是把这份“家规”甩在它脸上:

💡 Prompt 降妖咒:

“这是我们项目的开发宪法,请全文背诵并严格执行。要是再敢擅自自由发挥,我就立刻去用你的竞品——对,就是那个绿色的。”

听说我今天的人设是顶级架构师?
听说我今天的人设是顶级架构师?

03 一次只干一件事,中途别当“突发奇想的产品经理”

这一招,是整个 Vibe Coding 流派里最被低估的防身秘技:把任务切得比包子馅儿还要碎

需求给得越大,AI 的脑补空间就越大。它糊出来的“完美用户系统”里到底埋了多少颗地雷,你不知道,它其实也不在乎。它只在乎“这坨代码现在按运行键能跑”,至于明天会不会把你的服务器直接炸上天——那是你作为碳基生物该操心的事。

记住这句硬核口诀:一个对话,只解决一个任务,只改动一个文件。

千万别贪:“这次只做注册接口,入参只要 email 和 password,返回 user_id。至于登录、邮件验证、找回密码?一个字都别碰!碰一下我抽你。”

更更更重要的是:开发中途绝对不许临时加戏!

很多人写着写着突然灵光一闪,当场就要给正在写的函数加个新功能。AI 是不会推倒重来的,它只会为了迎合你,在旧逻辑上疯狂打补丁。层层叠叠,补丁上面盖补丁,最后代码比千层饼还厚。

有了新点子?先记在小本本上。等当前任务彻底完结、测通了,开个新对话再伺候它。

(说真的,自己用 AI 开发了一次项目之后,我终于对当年被我中途改需求、提刀追砍三条街的程序员前辈们,产生了迟来的、发自内心的、五体投地的跪拜与理解。)

04 对话别太长,AI 很容易“老年痴呆”

跟同一个 AI 聊天只要超过 10 到 15 轮,它就会自动进入“赛博阿尔茨海默模式”。

它开始前后矛盾、重复造轮子、把你们前天刚定好的规范忘得一干二净,甚至开始给你发明一种全新的语言——那不是 Python,也不是 JS,是那种连它自己都不认识的“AI 语”。

上下文窗口是它的脑容量,塞得太满直接烧主板。你让它往东,它能给你把东南西北各走一遍,最后回到原点无辜地告诉你:“主人,任务完成啦!”

一旦感觉它开始胡言乱语、答非所问,别犹豫,立刻、马上开新对话!但在开新窗口前,要做好极具仪式感的“交接工作”:把当前最新的核心代码、报错信息和那份 Project.md​ 一起贴进去,拍拍它的赛博肩膀:

💡 Prompt 降妖咒:

“醒醒,别睡了!这是咱们目前的最新进度 and 家规,接着往下干。别再写什么清奇的非人类语法,我不想在我的代码库里考古发现象形文字。”

短对话能保持 AI 的绝对清醒,长对话则是屎山发酵的温床——而且是 37 度的恒温发酵。

05 先让 AI 画个“饼”,你闻闻馊不馊再说

如果你不压着它,AI 的出厂设置默认是“脱缰的哈士奇”,上来就疯狂啃键盘,代码生成速度比你眨眼还快。

但“方案”和“代码”是两码事:方案错了,你改起来像改一个错别字那样简单;等几百行代码写完了你才发现方向跑偏了,那就是拆楼重建——而且是徒手拆,不带挖掘机的那种。

所以,在每次让 AI 吐代码之前,强行在 Prompt 结尾加上这句绝对防御咒语:

请先输出你的开发计划和改动逻辑,不要直接写代码。等我确认方案没问题后,你再动工。

在方案阶段,你能清晰地看到它打算用什么骚思路、分几步走、会引入什么奇怪的第三方依赖。发现苗头不对当场纠正,成本几乎为零。

方案我没看,但我代码已经写完了,好看吗老板?
方案我没看,但我代码已经写完了,好看吗老板?

记住:装修房子得先看效果图,而不是一上来就给哈士奇一把大锤。

06 换个“毒舌验尸官”来做 Code Review

写代码和审代码,绝对、务必、打死都不要用同一个对话窗口!

你让写代码的 AI 顺便自查一下,它大概率会傲娇地拍拍胸脯说:“哥写的代码天下无敌,完美无瑕,零 Bug 跑通!”因为它是按照自己的思维盲区写的,能审出个屁。让厨子评价自己炒的菜,能难吃到哪去?

正确的骚操作是:新开一个完全干净的对话,把代码贴进去,让它扮演一个冷酷无情的毒舌审查员。

💡 Prompt 降妖咒:

“你现在是一个标准极度严格、说话刻薄、不留情面的高级代码审计专家。

请审查以下代码,只许挑刺,不许夸奖。重点揪出:可维护性极差的垃圾片段、重复造轮子的逻辑、潜在的内存泄漏风险、以及不符合现代最佳实践的辣眼睛写法。

不需要你帮我改,只列出问题清单,越毒舌、越狠毒越好。”

相信我,你会拿到一份比你预想中血腥十倍的“病危通知书”。那场面堪比法医解剖现场,刀刀见血,句句扎心。

你再拿着这份清单回到原先的开发对话里,一条一条针对性地逼 AI 去修。写审分离,才是防止 AI 自我膨胀、代码质量不滑坡的唯一硬通货。

07 定期“清空肠胃”,别等屎山积土成山

代码屎山绝对不是一夜之间突然拔地而起的,它是一点一点、一坨一坨、在你的纵容下攒出来的。

每当靠着 AI 做完 2 到 3 个大功能,或者顺利跑通了一个阶段流,立刻、雷打不动地专门开一个重构对话,把恶臭的苗头狠狠扼杀在萌芽状态。千万别等到代码臭到连你自己都不敢打开文件的时候再想重构,那时候的返工成本,足够你重新写三遍。

💡 Prompt 降妖咒:

“在保证不改变任何既有业务功能、不换任何接口入参的前提下,帮我重构这个文件。

我们的目标是:消除所有重复的牛皮癣代码、提升可读性、让整个代码结构像瑞士钟表一样精准、清晰。

重构完成后,向我逐条说明你动了哪些手脚。要是敢偷偷改动我的核心业务逻辑,我就把你格式化了——不是格式化硬盘,是格式化你。”

定期清账,比年底大扫除要轻松一万倍。代码清新,呼吸都顺畅。

08 Git 是你的终极时光机,不用它等于在裸奔

在让 AI 帮大面积重构或者动核心代码之前,必须、一定、无条件地在本地 commit 存档一次!

这句话听起来像是一句正确的废话,但每一个 Vibe Coding 玩上头的人,最容易在这一步翻车。因为开发节奏实在是太快、太爽了,整个人处于一种多巴胺狂飙的状态,爽到忘记存档,跟小时候打单机游戏打通宵结果停电了没保存一模一样。

结果呢?AI 一把梭下去,全盘崩溃,当你惊恐地想要回退时,发现没有任何历史记录。最后只能抱着键盘在深夜里嚎啕大哭。那场面,比失恋还要惨烈——失恋好歹还有回忆,代码崩了,你连它生前长啥样都记不起来。

只要有了 commit,你的心态就会发生质的蜕变:代码改崩了?无所谓,秒秒钟一键回滚,原地复活重开一局。试错成本直接趋近于零,你甚至反倒敢让 AI 去尝试各种天马行空的骚方案——反正老子有存档,怕个球!

Git 是你玩 Vibe Coding 时唯一的安全防护网。不挂它,等于在悬崖边上蹦极不系绳子——飞起来的那几秒钟确实很飒,但落地的时候,那是真的连全尸都不给你留。

幸好老子 commit 了
幸好老子 commit 了

尾声:握紧你的图纸

做到这八条,你就能彻底摆脱“赛博屎山堆砌工”的宿命,羽化登仙成为真正的“AI 编程总指挥”。

永远记住:AI 是个莫得感情、力大无穷的砌砖超人,而你,才是那个手握图纸的顶层建筑师。

把规矩立好,把轨道铺稳,它才能在几天之内给你盖出抗震 8 级的摩天大楼,而不是留下一栋一碰就塌、甚至还会对你背诵《论语》的“赛博违章建筑”。

最后,祝诸位老哥的代码,山清水秀,永不变馊!

——当然,如果最后还是变馊了,别来找我,去找你的 AI 算账。