Vibe Coding 对开发者来说已经不再陌生,都说能让我们效率翻倍,但它真的能让我们在任何技术领域都所向披靡吗?
最近,我在两个截然不同的项目中,分别体验了一周"天堂"和"地狱"般的 AI 编程,得出了一个可能让你有些意外的结论。
天堂篇:当 AI 成为我的"超级实习生"
我的第一个项目是将一个 React 应用换壳成 Vue 3。尽管我已经多年专注于 Node.js 服务端,但好歹是前端出身,对 JavaScript 的脾性了如指掌。而 AI 正好可以弥补我对 Vue 3 新语法、新范式的不熟悉。
整个过程出奇地"丝滑"。我只需要设定好技术栈(Vue 3, TypeScript, Element Plus),把旧页面的截图和需求扔给 AI,它就能迅速生成代码。一天能产出两个页面的初稿,效率惊人。
但这种"丝滑"并非没有代价。AI 就像一个初级程序员,热情很高,但代码质量却参差不齐。我很快就发现了它挖的几个"坑":
首先,它倾向于把所有逻辑都堆砌在页面组件里,对于我已经封装好的公共方法或组件视而不见,导致代码冗余。
其次,它的实现方式非常"随心所欲",同样是搜索功能,上一个页面是输入即搜索,下一个页面就变成了需要点击按钮才触发,完全没有统一的交互规范。
最后,最让我哭笑不得的是,即便我三令五申要求严格按照截图实现,它还是会自作主张,把一个简单的"单选框"渲染成"复选框",或者把"输入框"改成"下拉菜单"。
好在,这些"小聪明"都在我的掌控之中。凭借着对前端开发的熟悉,我能迅速定位这些问题,或是上手或是给出更具体的细节和更严格的要求把 AI 的代码重构成我想要的样子。这个过程就像是在指导一个实习生,虽然他偶尔会犯错,但大部分体力活都让他干了,我只需要把握好方向,最终的效率依然惊人。
就这样,在 AI 的加持下,我只用了一周左右就完成了六个大页面的复制换壳,以及完整的服务端交互。虽然有些小波折,但体验依旧很好。

地狱篇:当 AI 变成了"莽撞的拆迁队"
有了前端项目丝滑般的体验,我信心满满地开启了第二个挑战:一个我完全不熟悉的 Java 后端项目。我想,既然 AI 连前端都能搞定,帮我启动一个 Java 服务应该不在话下吧?
然而,我很快就为自己的天真付出了代价。
尽管在搭建环境时很顺利,直到我向 AI 下达了指令:"帮我把这个 Java 项目跑起来。" AI 看起来很专业,它分析了 pom.xml
,配置了环境,然后开始解读项目里的 docker-compose.yml
文件,准备启动数据库等基础服务。
一切似乎都在正轨上。突然,终端里冒出了一个数据库连接错误。这是开发中的常见问题,我以为 AI 会像个老道的工程师一样,检查一下配置、用户名或密码。
但 AI 的选择超出了我的想象。它没有进行任何调试,而是用一种我无法理解的逻辑做出了判断:"连接不上?那就是有东西占用了端口或者环境有问题。删掉重新来过最快。"
紧接着,我眼睁睁地看着它执行了一条命令:
shell
docker rm -f mysql
删除了我 Docker 里正在运行的另一个 MySQL 容器,然后心满意足地重新创建了一个新的。
我当时就懵了。那个被删除的容器,是我另一个项目的开发数据库!虽然里面没有什么生产数据,但也是里面也有不少本地用来开发和测试的假数据。就这么一瞬间,全没了。

那一刻,我背后直冒冷汗。还好另一个项目只是本地的开发项目,我手忙脚乱地重新拉起数据库镜像才算解决。但如果这不是本地开发环境,如果那个容器里是重要数据,后果不堪设想。
这次经历让我深刻地意识到,AI 在它不擅长的领域,就像一个拿着锤子的"莽撞的拆迁队"。它能识别出"钉子"(问题),但它不知道整个"房子"(我的开发环境)的结构。它只会用最暴力、最直接的方式去"解决"问题,完全不考虑这种行为可能带来的灾难性后果。
现在回想,AI 并非'无法理解',它只是在做模式匹配。在它的'知识库'里,有无数'环境清理'的教程告诉它,解决环境问题的最快方法就是'推倒重来'。它并不知道这个'推倒'的代价是什么。它有智商,但没有情商,更没有'敬畏心'。
总结与反思:AI 时代,我们该如何自处?
我的两次 Vibe Coding 经历,一次天堂,一次地狱,最终指向了一个结论:AI 编程的效率,本质上取决于我们自身的技术深度。
在熟悉的领域,AI 是我们的"超级实习生",Vibe Coding 也确实能将我们从繁琐的体力劳动中解放出来,让我们专注于架构设计和技术决策,从而实现效率的倍增。但在我们知识的盲区,AI 就可能变成一个"莽撞的拆迁队",它的"自主决策"很可能会带来灾难性的后果。
这给我们所有程序员带来了新的启示:在 AI 时代,"T 型人才"将变得前所未有的重要。 我们不仅需要一个深耕的专业领域(T 的那一竖),作为我们安身立命的根本和驾驭 AI 的底气;我们还需要广泛涉猎其他技术领域(T 的那一横),构建一个足够宽广的知识体系,以确保在探索未知时,不至于被 AI 牵着鼻子走。
那么,当我们确实需要在不熟悉的领域借助 AI 时,应该怎么做才能避免"地狱"般的体验呢?我的建议是:
- 给 AI"降权": 永远不要给 AI 超出它任务所需的权限。特别是对于数据库、文件系统等高危操作,AI 只能提供代码建议,最终的执行权必须牢牢掌握在自己手中。
- 先当"学生",再当"老板": 在进入一个新领域时,先放下身段,让 AI 成为你的老师。用它来学习基础概念、搭建开发环境、理解核心范式。只有当你自己对这个领域有了基本的认知后,才能切换角色,让 AI 成为你的"实习生"。
- 保持绝对的怀疑: AI 不会"思考",它只是在做模式匹配。对于它生成的每一行代码、每一条命令,我们都必须保持怀疑,仔细审查其背后的逻辑,确保它真正理解了我们的意图。
说到底,AI 只是工具,而我们是使用工具的人。不要把方向盘完全交给 AI,尤其是在你看不懂地图的时候。 AI 能帮你踩油门加速,但前提是,你得先知道刹车在哪,并且时刻准备着踩下去。

轮到你了
那么,你在使用 AI 编程时,遇到过哪些'惊喜'或'惊吓'?你是否也有过类似的'天堂'或'地狱'体验?欢迎在评论区分享你的故事,我们一起交流,共同成长。