笔者作为一名非技术背景的作家,尝试利用 Bolt 进行“氛围编程”开发一款应用。虽然 AI 降低了入门门槛,但生成的代码在安全性、可维护性上存在巨大漏洞。本文通过实战揭示了 AI 编程工具的承诺与现实差距。
如果让你猜一个正在写代码开发 APP 的人的职业,你第一个想到的肯定不是“作家”。甚至连前五名都排不上。
我不介意,毕竟我的简历上从未出现过“编程”这项技能。我所知道的那点皮毛,要么是工作耳濡目染,要么是生活在湾区这种科技圈氛围下的“渗透作用”。
但生活总充满惊喜。实际上,我确实为工作开发了一款 APP。不过得加个前提:我并没有真正“写”代码——我是完全靠“氛围编程”(Vibe Coding),利用像 Bolt 这样的工具完成的。
那么,“氛围编程”真的如传说中那么强大吗?
什么是“氛围编程”? 🔮
“氛围编程”(Vibe coding)这个概念在 2025 年初才刚刚兴起,但它已经成为大语言模型(LLM)最热门的应用场景之一。
关于它能否真正有效编程,以及它将如何改变科技格局(尤其是对初级开发者的影响),业界争论不休。对于经验丰富的开发者来说,它甚至带来了某种存在主义威胁——从“冒名顶替综合症”到被彻底取代的恐惧。
有人承诺,“氛围编程”能让任何零基础的人开发出可用的应用程序。作为亲历者,我的体验是:它就像 Staples 的那个“That was easy!”按钮。按下去很容易,但当你把结果交给专业人士时,漏洞就百出了。
在我手中,它更像是一个把照片变成吉卜力风格的 AI 滤镜:发发朋友圈很有趣,但缺乏实质内容。
实战:打造“绝命厕所”APP 🚽
为了参加 Bolt 的黑客马拉松,我决定开发一款 APP。比赛的主题是与 Reddit 合作,做一个愚蠢、无礼且完全没用的东西。这简直是为我量身定做的。
“这就像厕所界的 Yelp(大众点评),但专门收录世界上最差的厕所。”我告诉我妈。 “呃,你到底是做什么工作的?”她困惑地问。
起步过程本该很简单。但对于一个连终端(Terminal)在哪里都找不到的人来说,并非如此。虽然主办方宣称“一分钟上手”,但我还是在各种文档中迷失了方向。这里我要向 Stack Overflow 的帮助台郑重道歉:对不起,我试图在工作电脑上下载 node.js,尽管我根本不需要它。 🙇♀️
好在,当我发现 Bolt 可以搞定一切时,事情变得简单了。Bolt 的界面时尚直观,不仅有实时预览,还能让你查看代码库。
对于我这种小白,我直接使用了自然语言提示框。我的提示词非常简单粗暴:
“Create an app for Reddit that’s like Yelp but for bad bathrooms.” (为 Reddit 做一个像 Yelp 的 APP,但是是关于烂厕所的。)
没错,既然是做个厕所 APP,我就不需要装作是什么优雅的提示词工程师了。
我的 AI 助手立刻开始工作,创建文件夹、生成代码。大约十分钟,它就搭好了基础框架:一个带有马桶 Emoji 的傻气 UI,包含评论区、评分系统,以及实时更新的评论列表。
一切看起来都很完美……直到我发现它根本没法用。🚫
AI 是个好帮手,但也是个“坑” 🕳️
错误信息像弹幕一样在界面上炸开。无论我怎么尝试,都无法上传评论。红色的报错提示告诉我“位置服务不可用”。
于是我告诉 Bolt:“APP 坏了。”
接下来是 45 分钟的故障排查。AI 告诉我哪里出了错,而我完全不需要理解,只需要把报错信息原封不动地复制粘贴回对话框。Bolt 确实修复了问题,但它给出的解释(什么 API 端点未在根级别提供服务)对我来说就像天书。
我的无知不仅限于代码,还包括测试流程。我甚至不知道 npm run dev 会更新现有的测试应用,还以为每次修改都要重新发布一个新版本。结果,等我的“马桶 APP”终于能跑通时,我的测试版块里已经堆了 20 个帖子。
Bolt 确实是个强大的助手。 它帮我搞定了我完全搞不懂的流程,甚至还能根据我的设计背景微调 UI。最终,我做出了一个能用的东西。
但问题是:它真的“好”吗?
代码审计:惨不忍睹的真相 🫣
当我把这个 APP 展示给同事 Ryan Donovan(资深技术编辑)看时,遮羞布被瞬间扯下。
起初,他对我的 APP 居然用到了 JSON 和 Redis 感到惊讶。 “你知道 JSON 或 Redis 是什么吗?”他问。 “完全不知道。”我理直气壮地回答。
Ryan 甚至不需要看代码,光是点击几下“检查元素”,就发现了巨大的安全漏洞:没有任何安全措施。这意味着任何人都可以随意访问数据。
为了进一步“受教育”,Ryan 建议我把代码发到 GitHub 上公开处刑。但我怂了。这就像明知道作业没写好,还被老师叫到讲台上朗读一样。
于是,我转而向我在湾区的程序员朋友们求助。
朋友们的反馈非常一致:代码混乱,几乎无法理解。 😵💫
- 结构混乱:“你的 Readme 挺漂亮,但为什么把所有东西都埋在
./project 文件夹里?为什么不放在顶层?” - 样式内联:“所有样式都内联在
tsx 组件里,读起来太乱了。” - 缺乏模块化:“
LocationDetails.tsx 返回的代码块太巨大了,应该拆分成更小的组件。” - 零单元测试:“这里完全没有单元测试(Unit Tests)。”这意味着没人知道这些组件是否逻辑自洽。
无法兑现的承诺:生产力税与安全隐患 ⚠️
这次实验让我看到了“氛围编程”与“专业编程”之间的巨大鸿沟。
如果是为了好玩,代码烂点无所谓。但“氛围编程”被宣传为开发者生产力的工具,甚至是初级开发者的替代品。这才是问题所在。
当然,我可以把朋友们的反馈喂给 Bolt,让它优化代码。它甚至能理解为什么要添加“描述性类名”。但如果我没有这些程序员朋友呢? 如果我是一个真心想创业的非技术人员呢?
即使我做出了一个“能用”的产品,未来的维护也将是一场灾难。这被称为“生产力税”(Productivity Tax)——开发者为了修复 AI 生成的“几乎正确但又不完全正确”的代码,往往要花费更多时间。调查显示,66% 的开发者都遭遇过这种“税”。
更可怕的是安全性。我的厕所 APP 也就是泄露点马桶评论,但如果是处理用户的邮箱、身份证、家庭住址呢?
我相信,在不久的将来,会有很多怀揣热情但缺乏经验的人,用 Bolt 这样的工具开发出外表光鲜的项目。而黑客们只需要用最基础的手段,就能窃取其中的敏感数据。
对于一项号称要淘汰初级开发者的技术,它目前还需要太多初级开发者的帮助才能正常运转。
结语:AI 是工具,不是替代品 🛠️
故事的另一面,我的一位物理学博士朋友也在用“氛围编程”。为了转行,他通过 LLM 快速学习编程。对他来说,CoPilot 和 Gemini 就像是一位耐心的私教,随时解答 Bug。
这,或许才是“氛围编程”的真正价值——它让学习编程变得更容易,而不是让你不需要学习编程。
就像狂野西部的任何新事物一样,关键在于你怎么用它。我决定把这次经历作为学习编程的第一步。如果你对“世界上最差的程序员”的代码感兴趣,欢迎来我的 GitHub 指点江山。
笔者锐评 🖊️
在大模型时代,“人人都是程序员”的口号喊得震天响。本文作者的经历极其真实地戳破了这个泡沫:零代码基础确实能“生成”软件,但无法“构建”软件。
国内现在的 AI 编程工具(如各种 IDE 插件、Agent)也面临同样的困境。它们能极其高效地解决“从 0 到 0.8”的问题,但剩下的“0.2”——包括安全性、架构合理性、可维护性——往往需要极高的专业素养来填补。
对于初级开发者来说,这既是危机也是转机。危机在于,只会写 CRUD 的“搬砖”工作确实会被 AI 取代;转机在于,拥有代码审美、安全意识和架构思维的工程师,将变得前所未有的稀缺。
AI 不会淘汰程序员,但会用 AI 且懂底层的程序员会淘汰那些只会 Prompt 的“氛围组”。
求点赞 👍 求关注 ❤️ 求收藏 ⭐️你的支持是我更新的最大动力!