掘金 人工智能 16小时前
全面解读 Vibe Coding:概念、流程、实践与未来
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Vibe coding,一种由大型语言模型(LLM)驱动的新型编程风格,由AI专家Andrej Karpathy于2025年初提出,迅速在软件开发圈走红。它颠覆了传统编程模式,开发者不再是代码的直接编写者,而是通过自然语言与AI对话,引导AI生成代码。这种“氛围编程”或“即兴编程”的核心在于开发者扮演需求提供者、实验引导者和结果把关者的角色,将实现细节交给AI,专注于描述目标、测试效果和迭代改进。文章深入探讨了vibe coding的起源、定义、典型流程、实践技巧、适用场景、潜在风险以及未来趋势,并为如何在工程实践中安全应用vibe coding提供了建议。它预示着编程门槛的降低和开发效率的极大提升,同时也带来了代码质量、可维护性、安全合规等方面的挑战,需要通过规范、测试和人类监督来加以规避。

✨ **Vibe Coding 的核心理念与起源**:Vibe coding,或称“氛围编程”,是一种由大型语言模型(LLM)驱动的全新编程风格,由AI专家Andrej Karpathy于2025年初提出。它强调开发者通过自然语言与AI进行交互,由AI根据指令自动生成代码。开发者在此过程中扮演着需求提供者、实验引导者和结果把关者的角色,而非传统的代码编写者。这种模式的核心在于“跟着感觉走”,通过快速试错和迭代,让AI逐步实现目标,而非追求一开始就写出完美代码。

🚀 **典型工作流程与人机协作模式**:Vibe coding 的工作流程是一个围绕AI助手的循环反馈过程:提出目标(Prompt)→ AI生成代码 → 运行代码并观察结果 → 反馈与调整 → 重复迭代。这种模式与传统的“思考-编码-调试”线性流程形成鲜明对比,更像是一种人机即兴协作。开发者将大部分编码和调试工作交给AI,自己则专注于需求表达和结果验证,从而大幅提升开发效率,尤其适合原型开发和一次性脚本的快速产出。

🛠️ **实践工具与落地建议**:为实践vibe coding,可借助ChatGPT、GitHub Copilot、Cursor、Sourcegraph Cody等多种AI编程助手。每种工具都有其特色,如ChatGPT擅长对话式生成,Copilot提供IDE内代码补全,Cursor则是一款集成了AI助手的代码编辑器。为规避风险,工程实践建议包括明确使用场景、制定提示规范、始终保持“Human in the Loop”(人类监督)、完善测试和验证、进行渐进重构、知识显性化以及控制外部代价,从而在享受AI带来的效率提升的同时,确保代码质量和项目可维护性。

💡 **适用场景、优势与潜在风险**:Vibe coding特别适用于原型开发、一次性脚本、个人小工具、界面搭建以及非核心业务代码等场景,能显著降低开发门槛、提升开发速度。其优势在于加速创新、赋能非程序员。然而,它也带来了代码质量下降、技术债务累积、调试困难、安全合规风险等挑战,可能违背传统软件工程原则,需要开发者高度警惕并采取措施加以管理。

🌐 **未来趋势与争议焦点**:Vibe coding被视为软件开发范式的一次重要进化,预示着自然语言将成为新的编程语言,AI可能成为开发者的“黄金搭档”。它有望极大地提升生产力,改变程序员的角色定位,并可能影响行业格局。然而,围绕其名称、理念和对软件工程原则的挑战也引发了广泛争议。部分专家认为“vibe coding”的名称具有误导性,而另一些人则担心它会鼓励不良工程实践,对程序员的技能和产品质量造成负面影响。如何平衡AI的效率与工程的严谨性,是未来需要持续探讨的关键议题。

Vibe Coding(“氛围编程”) 近来在软件开发圈掀起热议。作为一种 由大语言模型(LLM)驱动的全新编程风格,它由人工智能专家安德烈·卡帕斯提(Andrej Karpathy)于2025年初提出,很快风靡业内。本文将面向普通技术爱好者,深入介绍 vibe coding 的起源和词源、定义与本质、典型工作流程、实践技巧、适用场景与优势、潜在风险与局限、工程实践建议,以及未来趋势与争议。希望通过结构清晰、通俗易懂的讲解,帮助读者全面了解这一AI辅助编程新范式。

一、起源与词源

术语来源“Vibe coding” 一词由Karpathy在2025年2月的一则X(原Twitter)帖子中首次提出。Karpathy当时调侃道:“我称之为一种新的编程方式——vibe coding,就是完全沉浸在感觉中,拥抱指数级提升,忘记代码本身的存在”。这一充满戏谑的描述背后,是因为大型语言模型(如OpenAI的GPT-4、Anthropic的Claude等)已经强大到能够根据人类的自然语言指令自动生成可运行的代码。Karpathy表示自己使用Cursor编辑器(配合语音识别工具SuperWhisper)进行开发时,“几乎不再碰键盘”,只需不断对AI说出想要的效果,让AI编写代码并调整。这种近乎“即兴创作”的开发体验让他感到既新奇又有趣。

走红过程vibe coding 的概念发布后迅速走红。Karpathy的帖子引发广泛讨论,多家主流媒体争相报道。例如,《纽约时报》在报道中将其作为AI助力 “非程序员也能开发应用”的简写Ars Technica 则直言这是“在不理解代码如何工作的情况下接受AI代码,这一做法正在流行”。短短数周内,vibe coding 先后登上纽约时报、Ars Technica、卫报等媒体版面。2025年3月,“vibe coding”一词甚至被收入梅里亚姆-韦伯斯特词典的新兴俚语与流行语条目中。可以说,vibe coding 从诞生伊始就伴随着社交媒体和舆论的热烈关注,成为年度技术流行语之一。

术语释义:汉语中有文章将 vibe coding 直译为“氛围编程”或“即兴编程”,意在强调这种编程方式注重凭直觉和交互感觉驱动,而非传统的理性规划。它突出一种“跟着感觉走”的开发思路——开发者给AI描述想要的效果,剩下交由AI来发挥,实现代码自动生成。因此有人幽默地将其比喻为“代码界的即兴演奏”。当然,这种说法也引来一些资深从业者的质疑,认为名字容易让人误解(后文详述)。

二、定义与本质

基本定义Vibe coding 是一种人工智能辅助的软件开发方式。在这种模式下,开发者不再亲自编写每行代码,而是通过与 对话式AI(聊天机器人) 交流,由AI根据自然语言提示自动生成程序。简单来说,就是 “用日常语言对AI说出你想要什么,AI替你写代码” 。开发者扮演的角色从传统的代码作者,转变为需求提供者、实验引导者和结果把关者。他们关注的是描述目标测试效果迭代改进,而将具体实现细节留给AI去“填空”。正如Karpathy所说,“编程界最热门的新语言是英语”——借助LLM的强大能力,不懂具体编程语法的人也可以通过英语(或自然语言)来“编程”。

与传统编程的区别:相比传统手工编码,vibe coding 弱化了对精细控制和代码正确性的执着。传统开发讲究先周密设计架构、再逐步实现、严格调试,开发者必须深刻理解代码的行为。而在vibe coding中,人更倾向于接受AI给出的代码,即便不完全理解内部原理。开发者不会对AI的每个提议细究,而是更宽松地“来者不拒”,快速让功能跑起来,再通过不断试错达到可用状态。这种做法本质上是一种“宽容错误、快速试验”的心态:代码也许一开始并不完美,但先让它跑起来,再逐步调整改进。

Karpathy将这种风格戏称为“完全沉浸于感觉,忘记代码存在”。他形容自己的体验:“这算不上真正的编程。我只是看效果提要求跑代码复制粘贴,大体上就能跑通。”这番话生动地刻画了vibe coding的精髓:关注所见即所得的结果,而不是代码的每个细节。这与传统“深思熟虑-编码实现-严格调试”的模式形成鲜明对比。传统软件工程强调在动手写代码前充分思考,过程中仔细调优,每一步心中有数;而vibe coding更像人机即兴协作——一步步尝试由AI生成的方案,在交互中前进。

与一般AI辅助编码的区别:需要注意的是,vibe coding 并不等同于所有AI辅助编程。许多开发者已经习惯借助诸如GitHub Copilot这类AI补全工具来加速编码,但他们通常仍会审查和理解AI产出的代码,确保符合心中预期。这更像是 “AI做助手,人来掌舵”。Simon Willison等开发者明确区分:如果你使用LLM生成了代码,但经过仔细审查、测试,你完全理解了它,那么这只是负责任地使用AI提高效率,不属于vibe coding。真正的vibe coding意味着开发者有意弱化对代码的掌控跳过详尽审查,带着一点信任去 “让AI自由发挥”。打个比方:一般AI辅助像老司机旁边坐了个导航助手,方向盘仍牢牢握在自己手中;而vibe coding更像坐上无人驾驶汽车,你只告诉它目的地,然后更多地观察和体验旅程,而非亲自驾驶。

综上,vibe coding 的本质是一种范式转变:程序员从“一行行写代码”转向“一遍遍对AI描述需求”,从代码的创造者转为软件的策划者和监测者。这种转变背后蕴含着对AI能力的高度信任,以及对开发流程“人机共创”的新理解。

三、典型流程:从提示到代码的循环迭代

Vibe coding典型工作流程可以概括为一个围绕AI助手的循环反馈过程。与传统的“思考->编码->调试”线性流程不同,它更像一个不断试验的闭环。一般包括以下步骤:

    提出目标(Prompt) :首先,开发者用自然语言向AI清晰描述想要实现的目标或功能。例如,可以给出一个高层次指令:“请用Python写一个函数,读取CSV文件并输出每列的平均值。”这里的提示应尽可能具体、明确目标。(提示技巧详见后文实践部分。)AI 生成代码:AI助手(如ChatGPT等)根据提示尝试编写相应代码。它会输出一段满足描述要求的代码,可能是函数、模块甚至完整程序。此时人基本没有手写代码,只充当“需求提供者”。运行代码并观察结果:将AI生成的代码投入运行环境,测试其行为是否符合预期。这一步很关键,因为AI生成的代码不见得一次就完美。开发者需要像QA一样检查程序输出,或直接运行看有无报错。反馈与调整:根据运行结果,向AI提供反馈并提出修改要求。如果程序未达到预期,可能会报错或功能不完整,此时开发者可以告诉AI:“刚才的代码在文件不存在时会报错,请增加文件不存在时的错误处理。”或“结果不太对,请添加对空值的过滤”。AI接收到新的指令后,会产出改进版本的代码。重复迭代:上述“生成->运行->反馈”的循环会反复进行,直到代码满足需求为止。每一轮迭代,开发者都在引导AI逐步逼近目标。整个过程更像是在与AI对话调试,而非独自埋头写代码。

这一流程体现出vibe coding的一个显著特点:开发者并不试图一开始就写出完美代码,而是允许AI先给出一个“大致可以跑”的雏形,然后通过快速试错不断修补完善。“先有代码,后做优化” 成为常态,这在传统开发中较为少见(传统上我们倾向于尽量在编码时避免错误和重构)。

用Karpathy的原话来说,在vibe coding中他做的就是:“到效果,出需求,一下程序,遇到问题就粘贴错误信息进去让AI改,最终大体能用”。整个开发过程更像是在 “调教”AI:你不断告诉它哪里不对、需要什么,AI就不断调整代码。这样的循环相比人类独立调试有一个优势——AI本身具备一定自我纠错能力。当代码有bug时,AI其实相当于自带“单元测试”:因为如果AI生成的代码有错误,运行时马上就能暴露,这反过来帮助AI确认并修复(正如开发者所言,AI写代码时“自带事实校验,因为错了程序跑不通”)。

当然,这并不意味着vibe coding可以完全抛弃调试技巧。实际过程中,开发者仍需要运用常规的排错手段(查看日志、错误堆栈等),然后将发现的问题以新的提示形式告诉AI。例如:“程序崩溃并提示空指针异常,请找出原因并修复。” AI会据此改写代码。整个迭代就像人类教AI写代码,一步步纠正它直到满意为止。

对比“思考-编码-调试” :在传统开发模式中,一个任务通常按以下顺序:先周密思考如何实现(设计算法、数据结构),然后亲手编码实现,最后反复调试修复bug、优化性能。开发者全程脑中有完整思路并严格校验每个细节。而在vibe coding里,这三个阶段高度交织思考部分主要体现在逐轮提示需求,编码交给了AI自动生成,调试也融入每次反馈循环中。其结果是,开发流程更灵活快速但相对无序:项目并非线性完成,而是AI与人共同摸索出答案。正因如此,有人形容vibe coding是 “跟AI一起编程”,开发者更像导师/产品经理,AI是编码机器人,两者配合把想法实现出来。

下面这张示意漫画形象地捕捉了这种人机协作的编程新风尚

一幅漫画描绘了“vibe coding”理念下的日常场景:非程序员只需对AI说出需求(如自动回复邮件),AI便能生成相应的脚本来实现。这种由AI“读懂”人类意图并自动编程的方式,被认为极大降低了开发门槛。

总之,典型的vibe coding过程体现了高度迭代交互试错的特色。它突出结果导向:尽快让程序“跑起来”,再逐步打磨完善;弱化了过程中的理论分析和对实现细节的掌控。这种工作流带来了全新的开发体验,也对开发者的思维方式提出了不同要求(比如如何设计有效的提示,而不是如何写具体代码)。

四、落地实践:借助工具开启 vibe coding

理解了概念和流程,下一步就是实践。如何在现实开发中运用vibe coding理念?幸运的是,当下已有多款AI编程助手工具可以帮助我们实践vibe coding,包括ChatGPTGitHub CopilotCursorSourcegraph Cody 等等。这些工具各有侧重,下面分别介绍其用法和在vibe coding场景中的作用,并给出结合它们进行vibe coding的工作流建议。

上述几款工具各具特色,还有一些类似定位的产品,如Replit AI(Ghostwriter/Agent)Amazon CodeWhispererAnthropic Claude等,也能在不同程度上支持vibe coding。事实上,选择什么工具并不是关键,重要的是掌握vibe coding的思维模式和方法。很多时候,多种工具可以混合使用,取长补短。例如,一位开发者可能在VS Code里同时装上Copilot(用于自动补全代码段)和Cody(用于理解全局和做复杂改动),再辅以ChatGPT网页(用于脑暴方案或写算法)。实践中常见的一个流程是:先用聊天式工具生成初版代码,再进入IDE用Copilot/Cursor细调,两者结合将AI能力发挥到最大。

工作流示意:综合以上工具,典型的vibe coding实操工作流可以这样:首先构思需求,然后选择工具撰写提示(如在ChatGPT中详细描述,或在Cursor里写Prompt文件);接着AI产出初始代码;将代码运行测试,发现问题后反馈AI修改(ChatGPT对话或让Cody在项目中修改);如此循环,直到功能完成;最后人工做一次代码走查和测试,并部署应用。这一过程中,不断在 “人描述 -> AI生成 -> 人评估 -> AI改进” 之间往复,就像和AI搭档对项目进行迭代开发一样。下图概括了这个循环流程:

上述流程图描绘了vibe coding的循环开发模式:左侧用户提出需求,由Prompt携带上下文信息交给AI,AI根据规则(训练知识)生成代码。生成的代码经过运行验证,再不断反馈给AI修正,循环往复,直到发布。整个过程中,开发者也可以将需求、原理、情境等写成“vibe story”文档(图中左侧部分),辅助AI理解和团队后续维护。虽然图中概念较多,但核心就是用自然语言对AI提需求,AI产出代码,验证后持续反馈改进的闭环。

(注:上图选自Ruddy Lee的技术分享。其中提出用“KUD-P”方法给vibe coding增加结构化提示,记录Know/Understand/Do/Perspective等要素,帮助团队共享“vibe story”,避免AI生成的代码成为难以理解的黑盒。这是一种提高vibe coding可维护性的探索,属于更高级的实践技巧。)

五、适用场景与优势

Vibe coding 的出现,引发了人们对其应用场景和优势的热烈讨论。支持者认为,vibe coding降低了开发门槛,让许多以前无法自己编程的人也能实现创意;同时在某些任务上,它能大幅提升开发速度。以下是vibe coding特别适用的一些场景,以及其相对于传统开发的主要优势:

优势总结:综合来看,vibe coding的主要优势体现在提速降门槛两个方面。一方面,它让许多开发任务变得前所未有的高效——机器的代码生成速度远超人类,而且可以昼夜不停工作,开发者只需做方向性的引导。据Ars Technica报道,熟练运用vibe coding可以让编程速度提升一个数量级。另一方面,它让没有专业编程训练的人也能参与创造。正如Simon Willison所说,他希望“vibe coding能赋予数百万人打造定制工具的能力”。以前只有程序员才能自动化的任务,现在普通办公族都能通过对话式AI实现。这是一种真正的软件开发民主化:人人都可编程,软件定制不再是程序员的专利。对于科技行业,这意味着更多创意能够被实现,更加繁荣的创新生态。

当然,vibe coding也不是万能的灵药。它的局限和风险需要我们冷静看待。下一节,我们将探讨vibe coding可能带来的问题以及这些优势背后的代价。

六、风险与局限

任何新技术范式都伴随着挑战,vibe coding 也不例外。尽管它给我们描绘了一幅快速编程的美好图景,但在实际应用中暴露出一些不可忽视的风险和局限。以下列举几个主要问题:

综上,vibe coding的风险主要在于牺牲了传统上对代码理解与质量的把控,换取开发速度提升。这种取舍在小型、短期项目中问题不大,但在长期维护的大型项目中可能造成隐患累积。诚然,每种新实践初期都会经历摸索,vibe coding目前的局限并不代表它没有改进空间。关键在于我们如何管理和规避这些风险,而不是简单否定这种做法。下一节,我们将讨论在工程实践中如何为vibe coding加装“护栏”,最大程度发挥其优势、降低其副作用。

七、工程实践建议:为 vibe coding 加装护栏

既然vibe coding有上述诸多风险,在实际工程中我们该如何趋利避害?以下是一些被广泛认可的最佳实践和建议,可以帮助开发者在享受vibe coding高效的同时,确保产出代码质量和可维护性。

归纳起来, “加护栏”的核心思想是:引入AI加速,但工程质量的底线仍由人类把关。我们可以充分利用vibe coding的威力,但不能放弃对代码应有的责任和匠心。通过合理的规范、工具和文化建设,vibe coding完全可以安全地融入现有开发流程,为我们所用而不致产生失控风险。

八、未来趋势与争议

随着vibe coding走红,关于它是否会主导未来开发范式,引发了广泛讨论和思考。乐观者和悲观者各执一词,我们不妨梳理这些观点以展望未来。

未来趋势展望

争议与质疑

总结vibe coding 作为一种新兴理念,短时间内聚集了极高人气,也引发巨大争议。它可能不会也不应完全取代传统开发方式,但极有希望成为开发者工具箱中的重要一员。或许在不久的将来,我们将看到一种融合的范式: “AI增效的工程实践” (有人称之为AI-assisted or AI-augmented programming),其中vibe coding扮演让软件开发更敏捷、更普惠的角色,而工程师则在AI提供的“加速带”上走得更远。正如IBM文章所总结的:“vibe coding还在初期,它让编程更动态自然,但要充分发挥仍离不开人类的参与”。我们站在这个新旧交替的门槛上,既要大胆拥抱变化,也要冷静保持专业主义。最终,未来属于那些既懂AI又懂工程的人——他们将引领开发范式的下一次飞跃。


参考资料

    Benj Edwards. “Will the future of software development run on vibes?” , Ars Technica, Mar 5, 2025. (介绍vibe coding概念及Karpathy原帖内容,讨论其流行与风险)Simon Willison. “Not all AI-assisted programming is vibe coding (but vibe coding rocks)” , SimonWillison.net Blog, Mar 19, 2025. (明确区分vibe coding与一般AI编程,引用Karpathy完整帖文并讨论其意义和边界)Wikipedia百科词条: “Vibe coding” (访问于2025-08). (提供vibe coding的正式定义、流行时间线、支持者观点和批评意见等综述)Kevin Roose. “Not a Coder? With A.I., Just Having an Idea Can Be Enough.” , The New York Times, Feb 27, 2025. (讲述非程序员通过vibe coding开发“小工具”的报道,含Karpathy名言“我只是看、说、运行、复制”)Shalini Harkar. “What is vibe coding?” , IBM Think Blog, Apr 8, 2025. (解释vibe coding理念和实现步骤,提出“先写代码后优化”的思路,并列出现实案例和局限)Shalini Harkar. “What is vibe coding?” , IBM Think Blog, Apr 8, 2025. (列出vibe coding的主要技术挑战:如复杂任务困难、代码质量性能问题、调试维护难度和安全隐患)Google Cloud. “Vibe Coding Explained: Tools and Guides” , 2025. (详细阐述vibe coding的工作流程,分代码级迭代循环和应用生命周期两层,并对比传统编程的异同)Benj Edwards. Ars Technica 特稿, 2025. (引用Karpathy对于vibe coding的描述,以及该文对传统最佳实践的对比,强调vibe coding“顺其自然”与传统“精确控制”的反差)Benj Edwards采访 Simon Willison, Ars Technica, 2025. (Willison对vibe coding的谨慎态度:“可用于尝试想法,但通往生产需小心”,以及他对定义的补充说明)Wikipedia "Vibe coding" - Limitations 部分, 2025. (讨论vibe coding在代码理解和安全方面的隐患,引述Ars Technica对Willison的采访:“vibe coding整个生产代码库风险极高”)Lee Chong Ming. “Andrew Ng says vibe coding is a bad name for a very real and exhausting job” , Business Insider, Jun 4, 2025. (Andrew Ng批评vibe coding名称误导,强调使用AI编程仍是费脑力的工作,并提到很多企业尚未拥抱AI编码)Lee Chong Ming. Business Insider, Jun 2025. (提到vibe coding引发的讨论:AI是否会让程序员失业、创业者是否不再需要技术背景等,以及一位非工程师用vibe coding开发App的例子)Ian Foley. “Vibe coding” (Tech Cartoon description), Mar 6, 2025. (一幅卡通及说明,解释vibe coding如何让任何人只需描述想法,AI就能生成代码并运行产品,具有民主化编程的好处,举例通过自然语言让AI写脚本整理文件)Andrej Karpathy. “Vibe coding MenuGen” , Apr 27, 2025. (Karpathy个人博客,描述其100%用AI工具构建MenuGen应用的经历,“我基本不知道这代码是怎么工作的”,体现vibe coding可能带来的认知落差)Ruddy Lee. “KUD-P:vibe coding的故事框架” , Jul 22, 2025. (介绍如何用KUD-P框架给vibe coding增加结构和语境,以改善即兴代码的可理解可维护性,并附有vibe coding流程的图示说明)

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Vibe Coding AI编程 LLM 软件开发 人工智能
相关文章