如何开始氛围编码

氛围编码可以加快程序员和非程序员的创意构思速度——前提是您掌握了正确的方法。

学习目标

阅读本文后,您将能够:

  • 了解氛围编码的潜在优势
  • 确定氛围编码可能存在的风险和缺陷
  • 迈出氛围编码的第一步

复制文章链接

为什么氛围编码正在兴起?

为了将抽象的想法转化为可落地的成果,业务团队如今必须能够将其愿景清晰地传达给软件开发人员和 IT 团队。氛围编码(Vibe coding) 通过为非技术背景的项目经理和团队成员提供所需的技术词汇,帮助他们将模糊的概念转化为可落地的具体能力。

这就是氛围编码变得如此流行的原因:它使软件创建大众化,并提高了效率。通过赋予非开发人员探索规划和潜在应用中各种可能性的能力,从而驱动更快的创新周期和更具成本效益的原型设计。

负责领导技术项目的管理者尤其青睐氛围编码。通过在大语言模型(LLM)中使用提示词,并直接创建可运行的原型,能够帮助他们简化繁琐的软件开发流程。不必再用诸如“你能不能使这个变得更好?”之类的模糊要求淹没 IT 合作伙伴。缺乏深厚编码知识的管理人员也可以通过氛围编码创建简易的可运行原型,以此清晰呈现其设想。最终结果是,业务负责人与提供支持的 IT 技术人员之间的协作将更为顺畅,有助于加快产品上市策略的推进。

如何开始氛围编码:第一步是什么?

如果您想学习如何进行氛围编码,如下为一些入门建议:

1. 确定合适的候选项目

考虑哪些项目可能最适合使用氛围编码。创建原型以探索和交流想法的编程任务通常很适合。

以下是一些特别适合进行氛围编码的项目示例:

  • 您是产品经理,构想在订购系统中设计一个更用户友好的新界面,以提高客户参与度。通过氛围编码,您可以向 LLM 描述界面内容,并要求其生成所需代码。
  • 您构想了一个工作流方案,旨在加快缓慢的审批流程,并改善业务关键绩效指标(KPI)。通过氛围编码,您可以向 LLM 描述此工作流程,后者随后生成用于发起、流转及签署所需审批的用户界面。
  • 您是客户支持经理,希望客户服务代理能够更快地对问题进行分类。您设想一款软件应用,供代理用于识别五种常见问题,并提出修复建议。您可以使用氛围编码向 LLM 描述这款应用,后者就会为您生成该应用。

任何想要学习氛围编码的人,不仅应该了解何时应该使用氛围编码,而且还应该了解何时不应该使用。那么,在什么情况下氛围编码是不合适的方法?氛围编码只会生成一条通往原型和可运行代码的路径,而该路径未必是最高效的。事实上,如果将带有氛围编码的代码作为扩展运营的基础,您可能会遭遇困难。目前,即使您测试并调试所生成的代码,根据氛围编码的最佳实践,也仅应在业务风险较低的情况下使用氛围编码。但在未来,生产环境中可能会有更多基于氛围编码开发的应用。

2. 将业务需求转换为提示词

提示词是您在 LLM 聊天栏中输入的指令,用于获得您期望的输出。说明越详细,输出结果越好。不要使用模糊的指示,例如“制作一个网页”,而是详细描述您希望页面包含哪些按钮,以及您偏好的设计或颜色类型。包括最终用户的角色、特性以及隐含的实施要求等具体信息。后者的一个例子可能是:“使用 React 框架编写代码;不要只使用 JavaScript。”

此外,还应包括约束相关说明。例如,“确保相同的代码无需更改即可在移动和桌面浏览器上运行”。

如果您在撰写提示词时需要帮助,您也可以使用 LLM 来完成这项任务。您甚至可以让 LLM 向您提问,以便您在 LLM 生成代码时提供指导。这种方法允许没有编码经验的用户使用自然语言交流,并最终生成他们想要的应用。

以下是来自氛围编码应用 Lovable 的一个提示词示例:

我需要一个** 任务管理** 应用,包含:
-** 技术栈:** Next.js 前端,Tailwind CSS 用于样式设计,Supabase 用于身份验证和数据库。
- **核心功能:** 项目和任务创建、将任务分配给用户、到期日提醒以及仪表板概览。

首先,构建**主仪表板页面**,其中包含:
- 带有导航的页眉,
- 包含项目及其状态的列表,
- 以及用于创建新项目的按钮。

虽然您可能仍然需要一些基本的编码知识才能开始使用,例如了解 CSS 用于布局,但如果您练习使用 LLM 并将提示词与输出进行匹配,您将很快学会。

3. 快速且频繁地进行迭代

通常,您需要审查 LLM 生成的代码,以确保其合理性,然后在沙盒环境中运行,避免将漏洞暴露给更大范围内的重要代码。但在这里您可以破例。由于氛围编码旨在快速生成可演示的原型,请避免花费过多时间来查找错误和调试代码。如果代码无法运行,只需以不同的方式重新陈述您的需求,然后让 LLM 生成新的代码。

依靠 LLM 和智能体工作流来自动生成和验证整个应用。(新手用户通常可以通过 Stack Overflow 等热门论坛找到编程问题的答案。)一旦得到了可运行的成果,即可与资深开发人员分享原型,并将反馈纳入到工作文档中。

氛围编码的最大缺陷是什么?有哪些可能的解决方案?

由于 AI 存在局限性,您应该意识到这种方法的潜在风险。以下是一些风险最高的情况:

1. 安全挑战

如果没有专业开发人员检查或测试代码,通过氛围编码生成的软件可能包含安全漏洞。这些代码投入生产可能存在助长网络安全漏洞和暴露敏感数据的风险。容器是安全性问题的潜在解决方案,因为它们使用户能够在安全的沙盒环境中运行代码。

2. 重复的错误代码

如果您不是专业的程序员,您可能会在迭代过程中遇到困难,即使在您要求 LLM 更正问题后,它仍然会提供错误的代码。如果您没有保存可用的代码版本,您可能需要程序员的帮助。虽然违背氛围编码的初衷,但在这种情况下,适当的指导可能会大有裨益。

3. “多莉”综合征

在动画电影 《海底总动员》 中,一条名叫多莉的鱼患有某种健忘症:她难以记住最近发生的事件和对话,并且经常需要别人重复信息。

同样,LLM 的上下文窗口也存在限制。在几次使用新提示词迭代生成代码后,LLM 会忘记本次任务的最初目标,继而开始偏离方向并仅仅满足最新的提示词。这是一个问题,因为最终代码未能把握该氛围编码项目的整体背景。避免这种情况的一个方法可能是重申项目目标,或者提醒 LLM 基于您在当前会话中已输入的内容进行构建。

4. 无法追踪更改

您可能会无法追踪自己所做的更改。为了避免这个问题,建议学习使用源代码版本控制系统。

氛围编码 101:您还需要了解什么?

Vibe coding 能够扩大软件开发流程中的参与范围,并促进跨团队协作。因此,它缩短了设计开发流程,并提供更经济高效的原型设计方案。

尽管氛围编码具备潜在优势,团队仍应谨慎行事,从小规模项目着手。请注意诸如安全挑战之类的陷阱,并避免将未经测试的代码部署到现有的可用代码库中。

若您准备好了这些技巧与工具,且能正确、负责任地使用它们,同时对潜在问题保持警惕 —— 那么,氛围编码将可使软件开发更具普及性、协作性与效率。反过来,这可以帮助您快速实现新的想法,助力您超越竞争对手、实现业务增长。

Cloudflare 如何提供帮助?

如果您想学习如何进行氛围编码,Cloudflare 的解决方案可以帮助您入门。例如,学习氛围编码并进行实验的一种方法是在 Workers AI 上加载 Meta 的 Llama LLM。

Cloudflare 还通过容器解决安全难题。如果您计划使用 AI 生成的代码,鉴于这些代码本质上不可信,在 Cloudflare 安全、基于容器的环境中运行是一个明智的选择。

Cloudflare 的开源 VibeSDK 为您配置好运行自有 AI 驱动开发平台所需的整个环境:

  • 集成 LLM 模型,以实时生成代码、构建应用、调试错误和进行迭代
  • 隔离的开发环境,允许用户在安全沙盒中安全地构建和预览其应用
  • 无限扩展规模,让您能够部署成千上万甚至数百万个应用,全部由 Cloudflare 的全球网络服务
  • 跨多个 AI 服务商的可观测性与缓存能力,提供关于成本与性能的见解,以及针对热门响应的内置缓存
  • 项目模板,作为 LLM 构建常见应用的起点,有效加速开发
  • 一键将项目导出到用户的 Cloudflare 帐户或 GitHub 存储库,以便用户获取代码,用户可以获取代码并继续进行自己的开发

要进一步了解如何通过氛围编码创建可部署应用,请查看有关在 Cloudflare 上构建 AI 智能体的指南,其中包括 LLM 资源,可帮助您开始使用氛围编码。同时,欢迎探索您可用于创建和部署应用的 Cloudflare 演示平台

常见问题解答

什么是氛围编码?

氛围编码是一种利用大语言模型(LLM)快速生成功能原型的方法,程序员和非程序员均可使用。

氛围编码的主要优势是什么?

氛围编码能够普及软件创建并加速创新周期,使非程序员也能快速生成原型。对于负责领导技术项目的管理者而言,它同样非常有用。

开始氛围编码的首要步骤是什么?

首先,确定一个合适的项目,将业务需求转化为 LLM 的具体提示词,并对生成的代码进行快速迭代。

氛围编码有哪些潜在的缺陷?

潜在问题包括安全漏洞、LLM 重复错误代码、LLM 丢失上下文,以及丢失对代码更改的追踪。

Cloudflare 如何协助氛围编码流程?

Cloudflare 提供 Workers AI 以运行 LLM,并提供一个基于容器的安全环境,用于运行不受信任的 AI 生成代码。Cloudflare 的开源 VibeSDK 编码平台还提供用于代码生成、调试、隔离环境和可扩展性等工具。

用户如何才能降低与氛围编码相关的风险?

为了应对潜在风险,请使用容器来确保安全性,在需要时寻求程序员的帮助,向 LLM 再次明确项目目标,并利用源代码版本控制系统。