Vibe Coding 对于解决使用对话式 AI 生成代码时常见的问题至关重要。当您指示 AI 构建应用程序时,若想避免生成的代码无法运行、存在安全漏洞或难以修改,就必须理解这一概念。
Vibe Coding 的定义
Vibe Coding 是一种通过向 AI 描述应用程序或功能来生成代码的方式。用户只需说明自己的需求,AI 就会将其转化为代码。此时,向 AI 发出的指令被称为“提示词(Prompt)”。例如,“请帮我创建一个简单的博客网站”就是提示词的一个例子。
AI 代码生成的局限性
许多用户试图仅凭概括性的指令就让 AI 完成代码生成。然而,如果 AI 单独基于这类指令创建代码,通常很容易出错。生成的代码可能文件结构混乱、存在安全漏洞,或者变成难以在未来添加功能和修改的“意大利面条式代码”(即一团糟的代码)。这类代码即使在本地环境(开发者的计算机)中可以运行,在实际服务环境中也可能出现问题。代码库(Codebase)指的是项目中所有代码的集合。
利用 AI 实现高效应用程序开发的策略
要通过 Vibe Coding 有效地创建应用程序,需要采取将 AI 视为初级开发者的方针。开发者应设计应用程序的整体架构,并详细指示每个功能所需的代码。
在将代码生成任务交给 AI 之前,开发者必须亲自定义项目的架构(结构)和技术栈(将使用的技术)。例如,首先确定像 Next.js(一种用于构建用户界面的工具)这样的框架或 Sanity 这样的数据库,然后将这些信息传递给 AI。通过这种方式,将 AI 设定为“初级开发者”的角色,而开发者则扮演“资深架构师”,通过包含明确约束和职责的提示词来管理 AI。
解决 AI 生成的代码错误
AI 生成的代码并非完美无缺。即使使用了良好的提示词,也可能因“幻觉(Hallucination)”现象而生成错误的代码。此时,可以通过向 AI 具体指出它所犯的错误,来解决这些问题。例如,如果出现路由组(代码组织方式)冲突或图片加载失败问题,您可以将错误信息提供给 AI,询问解决方案,或者指示其更新必要的配置文件(例如:next.config.ts)。
AI 擅长代码编写,但代码是否符合开发者的目的并能在实际环境中正常运行,则需要开发者亲自确认和管理。
Vibe Coding 的应用潜力和局限
Vibe Coding 可以实现的功能:
- 基于明确指令和架构定义,生成结构化项目的初始骨架。
- 高效实现特定功能或组件(可重用的代码片段)。
- 借助 AI 帮助调试和修正已出现的代码错误。
- 请求代码片段(小段代码)以进行安全漏洞审查或性能改进。
不应期望 Vibe Coding 实现的功能:
- 在开发者不介入的情况下,自动生成完美、健壮且易于维护的代码。
- 编写覆盖所有边缘情况(异常情况)的健壮测试代码。
- 自动改进代码质量或可读性等主观部分(重构)。
- 理解整个代码库的复杂性并自行提出解决方案的能力。
AI 是一个强大的工具,但要充分发挥其潜力,开发者的明确指令和管理至关重要。
Vibe Coding 时的常见问题
- 只向 AI 发出概括性指令,当未得到预期结果时却归咎于 AI。
- 不理解生成的代码就直接使用,导致即使是微小的修改也无法进行,最终不得不全部废弃。
- 盲目接受 AI 建议的技术栈,导致项目开始时就使用了不适合其目的的技术。
- 即使发现 AI 造成的错误或低效之处,也未亲自修正,而是承认其局限性。
自我检查
如果您能自行解释向 AI 请求“创建一个简单的博客网站”后,AI 建议的技术栈(例如:React(一种用于构建用户界面的技术)、Python(一种用于创建计算机程序的语言)、Django(一种利用 Python 语言高效构建网站的工具)等)为何适合或不适合该博客,那么您就理解了本文的内容。此外,请检查当 AI 生成的代码出现问题时,您是否能反思“应该如何更明确地给出指令?”,而不是责怪 AI。
➡️ 下一篇将探讨的内容
- 能够区分绝对路径和相对路径,并准确说明文件位置
- 能够解释代码自上而下执行的原理以及执行的含义