T
traeai
登录
返回首页
Martin Fowler

Bliki: Vibe Coding

8.2Score

TL;DR · AI 摘要

Vibe coding通过完全不查看LLM生成的代码来构建软件应用,仅通过提示和反馈进行开发,但存在维护性、正确性和安全性风险。该技术适合无编程知识人员创建一次性应用,但不适合生产环境使用。

核心要点

  • Vibe coding指完全不看代码,仅通过提示LLM来构建软件的技术
  • 该技术由Andrej Karpathy在2025年2月提出,适合一次性项目
  • 存在安全漏洞、代码质量差和非确定性错误等风险

结构提纲

按章节快速跳转。

  1. §Vibe Coding定义

    Vibe coding是通过提示LLM构建软件应用的技术,完全不查看生成的代码,适合无编程知识人员但存在维护性问题。

  2. Andrej Karpathy在2025年2月首次提出vibe coding概念,描述了完全依赖LLM而忽略代码存在的开发方式。

  3. Vibe coding与agentic programming不同,前者完全不关注代码,后者仍会审查和关注代码内部结构。

  4. Vibe coding适合无编程知识人员构建自用应用或有经验程序员快速开发一次性软件原型。

  5. Vibe coding产生的软件存在严重安全风险,可能暴露敏感信息和凭证,给组织系统带来威胁。

  6. 由于缺乏对代码的关注,vibe coding会产生大量低质量代码,难以修改和增强。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • Vibe Coding
    • 定义与特征
      • 不查看代码
      • 依赖LLM提示
    • 风险与限制
      • 安全漏洞
      • 代码质量差
      • 非确定性错误
    • 应用场景
      • 一次性项目
      • 原型开发

金句 / Highlights

值得收藏与分享的关键句。

  • Vibe coding是通过提示LLM构建软件应用的技术,完全不查看生成的代码,适合无编程知识人员但存在维护性问题。
    ⬇︎ 下载 PNG𝕏 分享到 X
  • Vibe coding与agentic programming不同,前者完全不关注代码,后者仍会审查和关注代码内部结构。
    ⬇︎ 下载 PNG𝕏 分享到 X
  • Vibe coding适合无编程知识人员构建自用应用或有经验程序员快速开发一次性软件原型。
    ⬇︎ 下载 PNG𝕏 分享到 X
  • Vibe coding产生的软件存在严重安全风险,可能暴露敏感信息和凭证,给组织系统带来威胁。
    ⬇︎ 下载 PNG𝕏 分享到 X
#Vibe Coding#LLM#Software Development#Security
打开原文

标题:bliki: 氛围编程

URL 来源: https://martinfowler.com/bliki/VibeCoding.html

发布时间: Thu, 21 May 2026 11:51:47 GMT

Markdown 内容: 氛围编程(Vibe coding)是通过提示大语言模型(LLM),告诉它要构建什么,然后尝试运行,再提示修改——但完全不看 LLM 生成的任何代码来构建软件应用的技术。这种技术可以让没有任何编程知识的人使用。然而,由此产生的软件通常在可维护性、正确性和安全性方面存在问题——因此最好用于为有限受众编写的临时软件。

这个术语由经验丰富的程序员 Andrej Karpathy 在 2025 年 2 月在 X 上的一篇帖子中创造:

"有一种新的编码方式我称之为'氛围编程',你完全屈服于氛围,拥抱指数增长,忘记代码的存在。之所以可能是因为 LLM(例如带 Sonnet 的 Cursor Composer)变得太好了。而且我只是用 SuperWhisper 与 Composer 交谈,所以我几乎不碰键盘。我会要求最简单的事情,比如'将侧边栏的填充减少一半',因为我懒得去找。我总是'全部接受',不再阅读差异。当我收到错误消息时,我只是复制粘贴,通常这样就能解决。代码超出了我的常规理解范围,我得真正花时间去读它。有时 LLM 无法修复错误,所以我只是绕过它或要求随机更改直到问题消失。对于周末的临时项目来说还不错,但仍然很有趣。我在构建一个项目或网络应用,但这不是真正的编码——我只是看到一些东西,说一些话,运行一些东西,复制粘贴一些东西,大部分都能工作。"

-- Andrej Karpathy

关于氛围编程的关键点是"忘记代码的存在"。这正是它的有用之处,也是其局限性所在。

自从十一月拐点以来,许多程序员让 LLM 编写他们所有的代码,并评论说他们可能再也不需要直接编写一行代码了。然而他们确实关心这些代码,会审查它,关注其内部结构。在这种情况下,他们并没有忘记代码的存在,所以这实际上是另一种我称之为代理编程的东西。遗憾的是"氛围编程"这个术语真的流行起来了,所以许多人用它来表示代理编程。然而我认为尽管存在这种快速的语义扩散,值得努力将氛围编程和代理编程的概念分开,因为它们在使用方式和后果上都不同。

由于氛围编程者不看代码,他们不需要编程技能,所以对于没有编程知识的人为自己构建应用程序来说是完美的。有经验的程序员也可能发现它在快速开发临时软件或原型时很有用。

氛围编程还是很新的,所以我们正在探索其局限性,而这些局限性随着模型及其harnesses复杂程度的变化而变化。这些局限性确实引入了相当大的风险,特别是如果氛围编程的软件被广泛使用或能够访问敏感信息的话。

也许最严重的风险是安全风险。LLM 本质上是脆弱的,因为它们为攻击者提供了很大的攻击面。氛围编程的应用程序经常会暴露敏感信息,更糟糕的是,会暴露凭证以深入攻击组织的系统。即使是非程序员也需要了解Lethal Trifecta

对代码关注很少,氛围编程的软件可以迅速产生大量低质量的代码。这样的代码使得将来即使是一个 LLM 也难以修改和增强软件。虽然不断增长的 LLM 能力可能允许它处理最大的意大利面条式软件,但到目前为止很明显,结构良好的软件也让 LLM 更容易处理。

LLM 以其习惯性地编造错误事实并以极大信心呈现这些事实而闻名。这种习惯也会导致它们创建行为不正确的软件——而这些错误可能不会向用户显现。此外,LLM 的不确定性意味着要求 LLM 增强某些软件可能会轻易导致它引入错误,甚至是在新请求不应该改变的代码部分。因此我们应该对 LLM 生成的软件持怀疑态度,它仍然可能是有用的,但我们需要意识到风险。

总的来说,氛围编程软件最好用于仅由其作者或理解并接受相关风险的密切合作者使用的临时软件。更复杂、更广泛使用且风险后果更严重的代码不应被遗忘。

AI 可能会生成不准确的信息,请核实重要内容