我的两次 Vibe Coding 经历,一次天堂,一次地狱

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 时,应该怎么做才能避免"地狱"般的体验呢?我的建议是:

  1. 给 AI"降权": 永远不要给 AI 超出它任务所需的权限。特别是对于数据库、文件系统等高危操作,AI 只能提供代码建议,最终的执行权必须牢牢掌握在自己手中。
  2. 先当"学生",再当"老板": 在进入一个新领域时,先放下身段,让 AI 成为你的老师。用它来学习基础概念、搭建开发环境、理解核心范式。只有当你自己对这个领域有了基本的认知后,才能切换角色,让 AI 成为你的"实习生"。
  3. 保持绝对的怀疑: AI 不会"思考",它只是在做模式匹配。对于它生成的每一行代码、每一条命令,我们都必须保持怀疑,仔细审查其背后的逻辑,确保它真正理解了我们的意图。

说到底,AI 只是工具,而我们是使用工具的人。不要把方向盘完全交给 AI,尤其是在你看不懂地图的时候。 AI 能帮你踩油门加速,但前提是,你得先知道刹车在哪,并且时刻准备着踩下去。

轮到你了

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

相关推荐
想想就想想4 小时前
深度分页介绍及优化建议:从原理到实战的全链路解决方案
后端
程序员清风4 小时前
Dubbo RPCContext存储一些通用数据,这个用手动清除吗?
java·后端·面试
南瓜小米粥、4 小时前
从可插拔拦截器出发:自定义、注入 Spring Boot、到生效路径的完整实践(Demo 版)
java·spring boot·后端
Huangmiemei9114 小时前
Spring Boot项目的常用依赖有哪些?
java·spring boot·后端
天天摸鱼的java工程师4 小时前
接口联调总卡壳?先问自己:真的搞清楚 HTTP 的 Header 和 Body 了吗?
java·后端
Nan_Shu_6144 小时前
学习SpringBoot
java·spring boot·后端·学习·spring
间彧4 小时前
微服务架构中@Data注解在DTO与实体类中的最佳实践
后端
间彧4 小时前
Spring Boot中@Data注解的深度解析与实战应用
后端
数据库知识分享者小北5 小时前
Qoder + ADB Supabase :5分钟GET超火AI手办生图APP
数据库·后端