关于氛围编程(Vibe Coding)的一切

Vibe Coding这一术语由OpenAI联合创始人Andrej Karpathy提出,即用自然语言提示和智能体AI支持,更快地将想法转化为代码。

什么是氛围编程(Vibe Coding)?

氛围编程是一种自然语言驱动、AI辅助的软件开发方式。你无需手动编写每一行代码,而是通过自然语言向一个AI系统描述你想要的东西------例如,"为设置菜单创建一个深色模式切换开关"------然后AI帮助将其转化为可工作的代码。

氛围编程强调:

  • 用语言描述想法。
  • 快速迭代而不打断你的创意思路。
  • 出现创意之后构建具体内容。

它非常适合早期项目阶段和创意探索,让没有专业编程能力的人更加容易上手。 Vibe Coding并不能取代原本的开发技能。开发者的判断力、了解代码如何工作以及理解计算机科学的原理,都对结果非常重要。 然而Vibe Coding是AI改变原本软件开发的一部分,它使编码更具可及性、表达性和协作性。

工作原理

从一个提示开始。像 GitHub Copilotclaude code这样的AI工具会根据你的输入反馈一个代码建议。

示例:

  • 为音乐应用构建一个带有提交按钮的响应式HTML页面。
  • 生成一个按日期和总金额筛选客户订单的SQL。

你检查输出结果,调整逻辑,或添加新的指令,将输出塑造成可工作的代码,同时保证输出没有脱离项目的整体里。借助氛围编程的智能体系统,你可以快速开发出可工作的原型。通过这种对话式的工作流程,可以让开发者在过程中不断细化。

氛围编程怎么做

Vibe Coding是一种可重复的过程。选择了一个工具,过程很简单:描述你想要什么,查看AI工具的建议,然后检查结果直到符合要求。这是一种灵活的构建方式,非常适合在感觉用代码勾勒比计划好一切更快的时刻。这种方法适用于许多AI编码工具,无论是初学者还是专家程序员都可以使用。

1. 选择适合你工作流程的工具

寻找一个能与你偏爱的技术栈和设置协同工作的工具。Copilot 集成到流行的编辑器如 Visual Studio Code 和 JetBrains IDE 中,提供自然语言输入和上下文感知建议。

2. 描述你想要构建什么

用自然语言来描述你的目标。当你有好的提示词并提供良好的上下文时,你将获得最好的代码。

技巧:

  • 提及输入、输出或约束条件。
  • 包括视觉或风格偏好。
  • 保持提示简短且重点突出。

示例:

  • 创建一个带有一个端点的Flask应用,用于检查一个数字是否为质数。包含错误处理。

3. 优化输出结果

将AI的回应视为草稿。在过程中进行细化和调整,并可以提示它编写测试来验证结果。 你可能会:

  • 将长的代码块分解成更小的函数。
  • 重命名变量以增加清晰度。
  • 要求AI清理、简化或扩展某个部分。
  • 提示它编写单元测试或边界情况测试以尽早发现问题。

4. 在继续之前进行检查

测试代码并确保它符合你的想法。

好的收尾步骤:

  • 进行单元测试。
  • 检查项目依赖。
  • 使用 interformatter 进行代码格式化。

保持节奏 当这种方式和有效的代码审查结合时,Vibe Coding让你更容易地探索、构建和交付,而不会卡在设置阶段。这只要你准备好创造,就可以随时使用这种方式验证想法。

为什么氛围编程有效

Vibe Coding将编码变成了一场对话,让探索和分享想法变得更容易,而无需过度思考代码本身。以下是你马上会注意到的一些好处:

  • 快速从想法到可工作功能: ​ 通过自然语言提示使得勾勒概念并快速构建早期版本变得简单。

    • 示例: 一个开发者在一小时内构建了一个功能性的数据仪表板------通过提示来生成图表、API调用和样式。
  • 更低的入门门槛: ​ 你不需要掌握语法就可以开始构建。设计师、学生和独立开发者可以描述他们想要的东西,并看着它变成现实。

    • 示例: 学生使用诸如"将这个div居中"和"将背景设为黑色"之类的提示来构建网站。
  • 更专注,更少重复: ​ 随着AI处理样板代码,开发者可以花更多时间思考逻辑、架构和用户需求。

    • 示例: 用Copilot生成单元测试和表单验证,从而为产品思考腾出时间。
  • 编码即对话: ​ 氛围编程让迭代感觉更自然。你描述、调整、改进,一次一个提示。

    • 示例: 开发者可以让AI优化一个运行缓慢的函数,然后继续检查其他内容。
  • 让你保持控制: ​ AI提供了速度和灵活性,但你仍然是塑造结果的人。

氛围编程有哪些局限性?

氛围编程能快速实现,但像任何灵活的方法一样,它也有其局限。如果使用不当,可能会引入问题,拖慢你的速度或使项目难以管理。

  • 技术复杂性: ​ AI工具擅长处理常见任务,但在更高级的情况下常常忽略细节。它们倾向于假设一切都会顺利进行,而跳过线程、性能或错误处理等问题。

    • 棘手之处:

      • 复杂的工作流程
      • 实时系统或硬件集成
      • 需要微调或高精度的逻辑
  • 质量和一致性: ​ 能运行的代码并不总是为生产级的。如果不加注意,代码可能笨拙、重复或难以维护。

    • 需要注意:
      • 冗余的逻辑
      • 低效的解决方案
      • 杂乱的结构或格式
  • 调试和清晰度: ​ 你通常搞不清楚AI助手为何做出某些决定。AI缺少可观测的能力,有时会生成难以理解、维护或者拓展的代码。

    • 困难点:

      • 模糊的变量名
      • 缺失文档
      • 难以维护的逻辑
  • 长期维护: ​ 氛围编程有助于快速取得进展,但如果你跳过检查过程,事情会变得混乱。不一致的命名、分散的逻辑或未跟踪的依赖关系会迅速累积。当大量代码或微应用脱离一定的规范和检查规则,会让后续的开发变得尤其危险。

    • 最佳实践:

      • 尽早审查和重构。
      • 添加注释和文档。
      • 遵守团队的标准。
  • 安全风险: ​ 除非特别提示,AI可能会忽略安全措施,或在没有警告的情况下重复危险模式。

    • 常见风险:

      • 硬编码密钥
      • 不安全的表单或端口
      • 未验证的用户输入
  • 有意识地使用: ​ 氛围编程在与人类判断相结合时最为出色。AI可以加速进程,但前提是你需要参与审查、测试和优化输出。

AI在氛围编程中的角色

氛围编程始于一个简单的想法:描述你想要什么,然后让AI工具帮助构建它。这些工具将你的想法快速转化为代码,并能随着每个新提示进行调整。氛围编程的AI工具由在公共代码和自然语言提示上训练的大型语言模型驱动。

AI工具能做什么:

  • 将自然语言转化为代码
  • 处理设置、样板代码和格式化
  • 建议下一步或输出完整的函数
  • 解释逻辑或清理代码
  • 在任务中途适应变化

示例:

  • 像"使用Flask创建一个获取天气数据的REST API"这样简单的注释,可以生成完整的路由设置、函数逻辑和简洁的JSON响应,全部准备后好进行测试。

智能体AI如何为氛围编程工作

在氛围编程中,你描述,AI回应。你塑造结果,它进行适应。这种方式使得探索想法和专注于结构与意图变得更容易。

循环如下:

  1. 描述你的目标
  2. 让AI生成草稿
  3. 修改或添加约束条件
  4. 重复直到达到你想要的效果

这种稳定的流程让你保持参与,同时将提示转化为真实、可用的输出。

不足之处 同样的优势,如果你不审查输出就过度依赖AI,也可能变成陷阱。注意:

  • 过度依赖: 生成的代码不一定是安全、高效或正确的。
  • 技能捷径: 初学者可能会跳过基础知识的学习。
  • 无法观测: AI无法解释其选择,追踪决策或发现边界情况更加困难。

AI让氛围编程成为可能,但这仍然是一种协作方式。你提供想法,AI工具回应。你需要保持主导地位,构建最终的结果。

氛围编程工具的类型

所有的氛围编程工具都有一个核心特性:它们让你用自然语言描述你想要什么,并帮助你将它们转化为可以运行的代码。但它们使用方式、与代码的交互方式以及目标用户方面差异很大。 有些工具在你的代码编辑器(集成开发环境或IDE)内部工作,而有的工具可以在浏览器中运行,或者帮助你在极少编码的情况下构建软件。AI智能体可以在你的IDE内部、浏览器中或跨多个工具工作,根据你的目标采取多步行动。 以下是用于氛围编程的主要工具类型:

  • AI智能体与编排器: ​ 这些实验性工具遵循提示,生成完整的应用脚手架或自动执行多步任务。

    • 最适合:

      • 研究或自动化试点项目
      • 早期探索
      • 起草由人类细化的工作流程
  • AI代码补全助手: ​ 这些工具在你的编辑器内工作,在你输入时建议代码。它们非常擅长快速实现常规任务。

    • 最适合:

      • 在IDE中工作的开发者
      • 处理样板代码或重复逻辑
      • 提升编辑器的生产力
  • 对话式AI编码助手: ​ 这些工具让你用自然语言描述你想要什么。它们帮助你在上下文中与代码交互并理解代码。它们非常适合帮助你在过程中学习。

    • 最适合:

      • 原型设计和想法探索
      • 调试或逆向工程不熟悉的代码
      • 个人项目、小团队或动手型学习者
  • 具有提示支持的低代码智能体系统: ​ 使用这些低代码系统,你只需用自然语言描述你的应用或逻辑,然后让工具完成其余工作。

    • 最适合:

      • 设计师、产品负责人或非开发人员
      • 最小可行产品(MVP)和业务工具
      • 减少开发积压任务

选择适合的工具 选择适合你的技术栈、风格和目标的工具:

  • 如果是编码新手,可以尝试基于聊天的或低代码平台。
  • 如果是进行全栈项目,可以尝试具有上下文感知功能的编辑器内助手。
  • 如果是有兴趣实验动手,可以探索智能体了解和实现更多功能。

如何将氛围编程应用于软件开发

氛围编程提供了一种更自然的方式来设计、构建和调整软件。通过使用自然语言和AI辅助,你可以勾勒想法,在过程中塑造代码,并专注于重要的事情。这是一种灵活的方法,能融入现代工作流程,并适应不同的团队需求。

  • 从想法快速过渡到原型: ​ 使用提示来勾勒和测试想法,然后再选择技术栈或设置架构。

    • 示例: 初创团队使用Copilot快速搭建一个调度应用的UI组件和后端路由。几小时内,他们就可以实现一个可工作的演示原型。
  • 减少样板代码,加快速度: ​ 氛围编程处理重复性任务,如表单验证和API脚手架,因此你可以专注于逻辑和结构。

    • 示例: 业开发者使用Copilot生成单元测试和搭建路由------缩短了构建时间并减少了上下文切换。
  • 支持学习和入职: ​ 新团队成员可以通过提问和生成简化示例来探索不熟悉的代码。

    • 示例: 正在开发Web应用的初级开发者使用Copilot来改进一个代码块。Copilot建议了一个更简洁、更符合语言习惯的JavaScript版本,帮助他们在细化代码的同时理解最佳实践。
  • 跨角色协作: ​ 非工程师可以用自然语言描述意图,再由开发者优化代码。

    • 示例: 设计师用自然语言进行布局细节,为登录页面生成响应式HTML/CSS。然后开发者审查并调整代码以确保一致性和可访问性。
  • 在项目中保持灵活性: ​ 如果要重构,重新提示和调整AI生成的代码比从头重建要容易得多。

    • 示例: 开发团队可以在项目中期通过提示词,获取更新的项目脚手架和逻辑调整来重构他们的架构。

参考

1\][vibe-coding-cn](https://link.juejin.cn?target=https%3A%2F%2Fgithub.com%2Fioihub%2Fvibe-coding-cn "https://github.com/ioihub/vibe-coding-cn") \[2\][What Is Vibe Coding?](https://link.juejin.cn?target=https%3A%2F%2Fgithub.com%2Fresources%2Farticles%2Fwhat-is-vibe-coding "https://github.com/resources/articles/what-is-vibe-coding")

相关推荐
付玉祥25 分钟前
从谷歌白皮书看 Prompt 工程
人工智能
松岛雾奈.23025 分钟前
机器学习--数据集的标准化和归一化算法;随机森林
人工智能·算法·机器学习
阿明Drift28 分钟前
用 RAG 搭建一个 AI 小说问答系统
前端·人工智能
朱龙凯33 分钟前
LangChain学习笔记
人工智能
飞哥数智坊44 分钟前
Cursor 2.1 发布实测:计划能点了,审查能用了,CR 花多少?我也替你试了
人工智能·ai编程·cursor
凯子坚持 c1 小时前
Doubao-Seed-Code模型深度剖析:Agentic Coding在Obsidian插件开发中的应用实践
网络·人工智能
iFlow_AI1 小时前
iFlow CLI快速搭建Flutter应用记录
开发语言·前端·人工智能·flutter·ai·iflow·iflow cli
落羽的落羽1 小时前
【Linux系统】解明进程优先级与切换调度O(1)算法
linux·服务器·c++·人工智能·学习·算法·机器学习
2501_941807261 小时前
可持续发展与绿色科技的未来:从创新到实践
大数据·人工智能·物联网