登录页面渲染正确。REST API 返回了 200 OK。SaaS 脚手架在没有任何 linting 错误的情况下启动了。在一个下午,你完成了过去需要一周才能完成的工作。AI 编程助手已经彻底重塑了软件开发,现在构建功能感觉不像是在进行工程设计,而更像是在菜单上点菜。这种便利是真实的。但它也带来了代价,而这种代价往往在事态最严重的时候才会显现。开发者们开始将这个陷阱称为 Vibe Coding,这个名字完美地捕捉到了问题的本质。

复制粘贴循环

以下是这个循环的真实写照:你将光标置于聊天窗口中,用通俗易懂的英语描述一个功能。一段代码立即出现。你选中它,复制,切换回编辑器,粘贴并保存。终端没有报错。浏览器显示了正确的布局。你提交更改并打开下一个任务单。你没有停下来追踪逻辑,没有检查导入的依赖项,也没有质疑那个第三方库是否真的必要,或者使用标准库工具是否也能胜任。工作流仅仅是:提问、复制、粘贴、运行。如果表面看起来没问题,人们就会默认底层逻辑也是正确的。这在任何有意义的层面上都不算编程。这是在不看说明书的情况下组装预制件。就像任何捷径一样,它在出问题的那一刻之前都很好用。

在最糟糕的时机失去控制

当 Bug 影响到生产环境时,它会落在你的桌面上,而不是 AI 的。凌晨两点,聊天机器人并没有登录你的观测平台,但你登录了。如果你从未阅读过你交付的代码,你就无法推导其失败的原因。你会试图在不理解的文件中进行 grep 搜索,试图修复你从未学习过的逻辑。这种感觉令人迷失方向。一个编写自己构建逻辑的开发者会建立起系统的心理地图。他们知道哪里有风险点,哪些假设支撑着整个架构。Vibe Coding 抹去了那张地图。你变成了一个黑盒的操作员。语法是正确的,演示让客户印象深刻,但系统并不真正属于你。所有权需要理解,而理解需要时间。跳过这一步并不会消除成本,它只是将成本转移到了最昂贵的时刻。

能运行的代码并不等于安全的代码

AI 模型基于训练数据中的模式生成响应。这些模式包含了大量过时且不安全的示例。你粘贴的登录函数可能会使用一种快速但过时的哈希算法来存储密码,而不是使用加盐的慢速哈希,因为训练数据更倾向于旧的论坛片段。API 端点可能会将用户输入直接拼接进原始 SQL 字符串中,因为你要求一个简单的示例,而模型照做了。你的数据库凭据可能会泄露到客户端 JavaScript 中,因为 AI 并不知道你正在构建的是无服务器(serverless)前端,而不是后端路由。

缺失输入验证是很常见的。生成的表单处理器假设用户是“礼貌”的,在将数据传递到技术栈深层之前,没有检查字符串长度、数值范围或文件类型。身份验证检查可能会依赖客户端令牌,而没有进行适当的服务端验证,从而产生一种虚假的安全感。AI 可能会生成一个没有 HttpOnly 或 Secure 标志的会话 Cookie,因为其训练数据包含了过时的 Stack Overflow 回答。每个问题在演示期间都是不可见的。应用运行正常,用户可以登录,数据在流动。但攻击者只需要一个毫无防备的入口点。以安全视角审查 AI 的输出并非偏执,而是专业软件的基本要求。

不一致性税

代码库也是一个故事。它教会新团队成员应该如何做事。Vibe Coding 将这种叙事碎片化成了十几种相互冲突的方言。你昨天构建的功能使用了带有显式状态 reducer 的 React 函数式 hooks。今天的功能由于使用了略有不同的提示词,由于模型默认使用了旧模式,从而引入了 class components。API 层在 OpenAPI 生成的 stubs 和手写的 route handlers 之间切换。命名规范在 camelCase 和 snake_case 之间漂移。错误处理在某个文件中消失了,而在另一个文件中又以冗长的嵌套 try-catch 块形式回归。

几周过去后,项目变成了一场考古挖掘。你无法安全地修改某个模块,因为你不知道相邻的 AI 生成模块做了哪些假设。重构变成了一场缓慢且充满风险的“打地鼠”游戏。系统可以编译,但已不再具有连贯性。可维护性在无数次粘贴代码片段的过程中消亡殆尽。

将 AI 变成老师

真正的学习发生在对输出进行质询时。把 AI 当作一名写代码很快、但仍需接受代码审查的高级开发人员。询问它为什么在那个树遍历中选择了递归而非迭代。询问是否存在一种更节省内存、且能更好地处理边缘情况的路径。询问当输入为空、网络请求超时或两个用户同时触发该函数时会发生什么。让它逐行解释逻辑,就像你在审查一名初级队友的 pull request 一样。

当你迫使模型为其选择辩护时,你也迫使自己去理解它们。这彻底改变了这种互动关系。AI 不再是自动驾驶仪,而是变成了一位导师。目标并不是让你自己完全不写代码,而是只交付你完全理解的代码,即使初稿是由助手起草的。

现在真正重要的技能

编写语法正变得日益廉价。阅读和推理则是