先聊一个最近圈子里讨论度很高的话题:vibe coding。第一次听到这个词的时候,我还以为又是哪个社区造出来的梗。但用了几个周末做了两个小项目之后,我不得不承认,这种“边哼哼歌边让 AI 写代码”的开发方式,确实有它独特的快乐,也确确实实改变了一部分开发习惯。
本文不是我个人的“情绪输出”,而是围绕vibe coding 是什么、核心理念怎么拆解、环境怎么搭、一个完整小项目怎么落地、以及有哪些坑展开的实战向教程。无论你是第一次听说这个词,还是已经在用 Cursor、Vercel v0、Copilot 等工具,都可以从这篇文章里找到可以参考的流程和判断标准。特别是那些想用 vibe coding 快速做原型、验证 idea,但又担心代码质量翻车的开发者,建议收藏备用。
1. vibe coding 是什么,它解决什么问题
1.1 从“手写代码”到“描述意图”
vibe coding 是最近一年在 AI 编程工具快速迭代背景下流行起来的开发方式。它的核心可以概括为一句话:用自然语言描述你想要的效果,让 AI 生成代码,你负责体验、测试和迭代方向,而不是逐行敲键盘。
这个概念最早来自一些 AI 工具的重度用户,他们在用 Cursor、GitHub Copilot、v0 等工具时发现,自己写代码时的状态不再像传统开发那样“盯着语法和报错逐行抠”,而是更像一个产品经理或交互设计师:先讲清楚我想要一个什么页面、什么功能、什么交互,然后看 AI 给出的结果,不满意就继续提要求。
“vibe”这个词本身就带点随性和状态感——你并不需要完全掌握每一个底层实现细节,只要能维持一种“感觉对了”的节奏,持续提出修改意见,AI 就能帮你把项目往前推。这不是玄学,而是一种新的分工方式:人类负责定义方向和审美,AI 负责生成和迭代。
1.2 它和传统编程、低代码的区别
很多人会把 vibe coding 和低代码、无代码混淆,这里有必要做一下区分。
传统编程是“代码即文档”,你写出的每一行代码都需要被编译、被测试、被维护。低代码/无代码平台则是通过可视化拖拽和预设组件来搭建应用,灵活性和扩展性受限于平台本身。
vibe coding 的落点不同:它仍然生成真实的代码文件,仍然需要你理解基本的工程结构,只不过生成代码的“手”变成了 AI。于是它同时具备了两个优点:
- 比低代码平台更自由,可以生成任意复杂度的业务逻辑、组件和数据结构。
- 比传统手写代码更高效,尤其是原型阶段,能把几天的工作量压缩到几小时。
从实际体验来看,vibe coding 最适合的阶段是0 到 1 的原型验证:一个 idea 刚冒出来,你不需要先搭建完整的工程架构,而是直接告诉 AI“帮我做一个带登录页的 TODO 应用”,然后基于它生成的结果,逐步调整交互细节。
1.3 为什么说这件事值得认真对待
vibe coding 之所以能在短时间内成为热词,并在 Vercel AI vibe coding platform、鸿蒙生态开发等场景中被频繁提及,核心原因是它把开发的“门槛”和“心态成本”都降低了。
传统开发中,新手最大的阻力不是不会写代码,而是不知道从哪里开始。一个空白的main.py或空白的 React 目录,其实非常劝退。vibe coding 提供了一个低摩擦的起点:你只需要会描述需求,剩下的骨架由 AI 生成。这种模式对于以下几种人尤其有价值:
- 刚开始学编程的学生,想快速做出一个看得见的项目。
- 产品经理或设计师,想验证交互方案是否可行。
- 独立开发者,一个人想快速跑通多个 idea。
- 传统后端或运维,想快速补一个前端页面做内部工具。
当然,vibe coding 不代表不需要学习编程基础。如果你想让它生成稳定、可维护的代码,你至少得能在关键节点看懂代码在干什么。它拉低了起步门槛,但没有取消工程素养的要求。
2. vibe coding 的核心理念拆解
2.1 意图优于语法
vibe coding 的第一条原则是:把注意力从语法细节转移到意图表达上。
传统开发中我们习惯先想数据结构、接口定义、函数签名,然后才写具体实现。但 vibe coding 的节奏是反过来的:你先用一句话描述最终效果,比如“做一个记账页面,左侧是分类列表,右侧是最近账单,顶部有一个统计卡片”,AI 先按这个描述生成一版,你再根据输出效果调整描述。
我自己的体验是,用 vibe coding 的时候,描述质量直接决定成品质量。你给出的信息越具体,AI 生成的结果就越接近预期。所谓“意图清晰”并不是要写长篇大论,而是要把关键约束、页面/模块边界、交互反馈说清楚。
举一个正反例子:
- 差评提示词:“写一个页面。”
- 中等提示词:“写一个待办事项页面,能添加和删除任务。”
- 较好提示词:“写一个 React 待办事项页面,顶部是输入框和添加按钮,下面是任务列表,每个任务前面有复选框,勾选后文字变成灰色并加删除线,删除按钮在每行右侧,数据用本地状态保存。”
可以看到,同样是一个待办页面,第三版提示词已经把视觉走向、交互反馈、状态存储都约束住了。AI 生成的结果几乎就是在做“填充细节”,而不是凭空猜测。
2.2 循环迭代是主要工作方式
vibe coding 的第二个核心理念是把开发变成多轮问答式的循环。
传统开发流程图大致是:需求分析 → 设计 → 编码 → 测试 → 修复 → 发布。vibe coding 则更像一个快速循环:描述 → 生成 → 运行验证 → 发现问题 → 提出修改 → 再生成。
这个循环里,最有价值的动作是“提出修改”。很多初次尝试的朋友会有一个错觉:让 AI 一次性生成一个完整项目。实际上这样做效率反而低,因为需求跨度越大,AI 猜测的成分越多,生成结果离预期越远。更好的做法是拆成小步骤,每一步需求描述不超过 3 到 4 个关键点,生成后马上运行、观察、反馈。
我在实际项目里常用的一句话是:“目前还能跑,但交互上有个问题……”。这句简单的反馈,AI 就能精准定位到需要修改的区域,而不是重新生成整个文件。这种循环模式越熟练,你对项目的掌控感越强,修改周期越短。
2.3 上下文管理决定了 AI 产出上限
接上一条,vibe coding 对工具的要求和对人的要求是同时存在的。
AI 编程工具不是无所不知的魔法师,它的上下文窗口有限。当项目文件变多、逻辑变复杂之后,AI 很容易“遗忘”之前的约定。这时候你需要主动管理上下文:
- 尽量保持单个文件职责单一,方便 AI 在局部上下文中推理。
- 修改需求时,明确指出涉及的文件、函数、变量名。
- 遇到跨文件改动,先让 AI 列出修改计划,再动手。
- 对于反复出现的业务规则,提炼成文档或注释,AI 之后读取时就能保持一致。
把上下文管理好,vibe coding 才能从“生成小工具”升级到“维护一个有一定复杂度的项目”。很多人玩到后期项目失控,不是 AI 能力不够,而是自己上下文管理太差。
2.4 工程底线:懂调试、会看代码
前面说 vibe coding 降低了门槛,但不代表完全不需要写代码。有一个底线绕不开:你至少要能看懂报错信息,并会做基本的调试。
AI 生成代码不是百分之百正确的。无论是逻辑错误、拼写错误、还是依赖版本不兼容,最终都需要人来拍板修复。如果你完全不懂代码,那 AI 生成的 bug 会像一个黑盒一样卡住整条流程。
所以在我的建议里,vibe coding 最适合的人群不是“零基础小白”,而是“有一点编程基础,但希望通过 AI 提升效率的开发者”。零基础的朋友可以把它当成学习工具,但一定要在项目推进过程中,反向学习 AI 生成的代码结构和语法,慢慢补齐基础。
3. 环境准备与工具选择
3.1 基于 Web 的 vibe coding 平台
目前市面上已经有不少支持 vibe coding 的 AI 平台。以 Vercel AI vibe coding platform 为代表的这一类平台,通常在网页里直接提供 AI 对话、代码预览、一键部署等能力。你只需要在对话框里描述需求,平台会在云端生成项目,并给出可预览页面。
这类平台的优点是:
- 零本地环境配置,打开浏览器就能开始。
- 部署链路被简化,生成的项目通常可以直接发布。
- 平台内置组件库和样式预设,视觉完成度较高。
如果你只是想快速验证 idea,或者做一个简单的落地页、表单应用,这种 Web 平台是最省心的选择。
3.2 本地 AI 编程 IDE
另一类是本地 IDE,最典型的是 Cursor,以及以 AI 能力为核心卖点的编辑器。这类工具通常基于 VS Code 或类似架构,可以读取你本地的项目文件、终端命令、版本控制信息,因此更适合有一定工程规模的项目。
我目前的日常组合是:
- Cursor 作为主要编辑器,负责日常编码、重构、Debug 解释。
- GitHub Copilot 作为补充,负责快速补全重复性代码。
- 本地 Node.js 环境,用于运行前后端项目。
在本地 IDE 模式下,vibe coding 不只是“生成一个页面”,而是可以贯穿整个开发周期:从初始化项目、编写核心逻辑、写测试用例、补注释文档,到排查线上问题。它的能力上限远高于 Web 平台,但相应地,你也需要具备一定的工程能力。
3.3 版本与运行环境说明
由于 AI 编程工具迭代速度非常快,具体版本号经常变化。这里不写死某一版本,而是给出一个通用的环境检查思路:
- Node.js 建议使用当前 LTS 版本,前端项目、Next.js 项目、Vite 项目都需要它。
- Git 需要提前配置好,AI 生成代码后,你至少要能提交、回滚。
- 不同 AI 工具对模型版本的支持不同,遇到某些高级功能不可用时,先检查本地工具是否更新到最新版。
对于新手,建议先选一条最简单的路径:注册一个 Web 平台账号 → 用模板创建项目 → 在对话框中描述需求 → 在线预览和部署。跑通全流程之后,再切换到本地 IDE,练习把 AI 生成的项目纳入 Git 管理。
3.4 示例项目技术栈
为了演示完整流程,本文选择一套保守、稳定的技术组合,重点演示“如何用 vibe coding 思路推进项目”:
- 前端:React + Vite
- 样式:纯 CSS,减少依赖
- 运行时:Node.js
- 持久化:localStorage
- AI 工具:以 ChatGPT/Claude 类通用对话模型为主,本地 IDE 辅助
这套组合的优点是不依赖任何复杂后端服务,运行门槛低,几乎任何一台电脑都能跑起来。下面所有示例都基于这条技术栈展开。
4. 完整实战:用 vibe coding 做一个灵感收集盒子
4.1 项目需求描述
为了演示 vibe coding 的完整闭环,我们来做一个小工具:灵感收集盒子。
需求很简单:
- 用户在输入框中输入一条灵感文字,点击按钮保存。
- 所有灵感以卡片列表形式展示在下方。
- 每条卡片可以标记“已完成”或“删除”。
- 数据保存在浏览器本地,刷新页面不丢失。
- 页面要简洁,带一点色彩区分。
这个项目体积不大,但覆盖了输入、列表渲染、状态管理、本地存储、交互反馈等常见前端场景,非常适合体验 vibe coding 流程。
4.2 第一轮:生成项目脚手架
在 vibe coding 工作流里,第一轮提示词不需要写得太复杂。目标是先让 AI 生成一个可以运行的项目骨架。
提示词示例:
请帮我创建一个 React + Vite 项目的前端页面,功能是一个灵感收集盒子。 页面要求: 1. 顶部有一个标题栏。 2. 中间是输入框和“添加灵感”按钮。 3. 下面是灵感卡片列表。 4. 数据先写死几条用于展示。 请给出完整代码,包括 index.html、main.jsx、App.jsx 和 CSS 文件。AI 生成的核心文件大致如下。
文件路径:src/App.jsx
import { useState } from 'react'; import './App.css'; const initialIdeas = [ { id: 1, text: '做一个记录咖啡冲煮参数的页面', done: false }, { id: 2, text: '用 AI 生成每日复盘卡片', done: true }, { id: 3, text: '把博客文章自动转为播客脚本', done: false }, ]; function App() { const [ideas, setIdeas] = useState(initialIdeas); const [inputValue, setInputValue] = useState(''); const addIdea = () => { if (!inputValue.trim()) return; const newIdea = { id: Date.now(), text: inputValue.trim(), done: false, }; setIdeas([newIdea, ...ideas]); setInputValue(''); }; const toggleDone = (id) => { setIdeas(ideas.map(item => item.id === id ? { ...item, done: !item.done } : item )); }; const deleteIdea = (id) => { setIdeas(ideas.filter(item => item.id !== id)); }; return ( <div className="app"> <header className="header"> <h1>💡 灵感收集盒子</h1> </header> <div className="input-area"> <input type="text" placeholder="记录一条灵感..." value={inputValue} onChange={(e) => setInputValue(e.target.value)} onKeyDown={(e) => e.key === 'Enter' && addIdea()} /> <button onClick={addIdea}>添加灵感</button> </div> <ul className="idea-list"> {ideas.map(idea => ( <li key={idea.id} className={idea.done ? 'idea-card done' : 'idea-card'}> <label> <input type="checkbox" checked={idea.done} onChange={() => toggleDone(idea.id)} /> <span>{idea.text}</span> </label> <button className="delete-btn" onClick={() => deleteIdea(idea.id)} > 删除 </button> </li> ))} </ul> </div> ); } export default App;文件路径:src/App.css
.app { max-width: 720px; margin: 0 auto; padding: 24px; font-family: system-ui, sans-serif; } .header h1 { font-size: 28px; margin: 16px 0; } .input-area { display: flex; gap: 8px; margin-bottom: 24px; } .input-area input { flex: 1; padding: 10px 12px; border: 1px solid #ddd; border-radius: 8px; font-size: 16px; } .input-area button { padding: 10px 20px; background: #4f46e5; color: #fff; border: none; border-radius: 8px; cursor: pointer; } .idea-list { list-style: none; padding: 0; margin: 0; } .idea-card { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; border: 1px solid #eee; border-radius: 10px; margin-bottom: 10px; background: #fafafa; transition: all 0.2s ease; } .idea-card.done { opacity: 0.6; } .idea-card.done span { text-decoration: line-through; } .delete-btn { background: transparent; border: 1px solid #f87171; color: #f87171; padding: 4px 12px; border-radius: 6px; cursor: pointer; }文件路径:src/main.jsx
import React from 'react'; import ReactDOM from 'react-dom/client'; import App from './App.jsx'; import './index.css'; ReactDOM.createRoot(document.getElementById('root')).render( <React.StrictMode> <App /> </React.StrictMode> );到这里第一轮基本完成。运行npm install && npm run dev就能在浏览器里看到页面效果。
4.3 第二轮:加入 localStorage 持久化
第一轮版本的问题很明显:刷新页面后数据会重置。接下来通过第二轮提示词,让 AI 加入持久化逻辑。
提示词示例:
现在给这个灵感盒子增加 localStorage 持久化功能。 要求: 1. 初始化状态时,优先从 localStorage 读取数据。 2. 每次 ideas 变化时自动保存到 localStorage。 3. 存储 key 使用 "idea-box-data"。 4. 保持现有功能不变。AI 生成的优化代码部分如下。
const STORAGE_KEY = 'idea-box-data'; function loadIdeas() { try { const saved = localStorage.getItem(STORAGE_KEY); if (saved) { return JSON.parse(saved); } } catch (e) { console.warn('读取本地缓存失败', e); } return initialIdeas; } function App() { const [ideas, setIdeas] = useState(loadIdeas); useEffect(() => { localStorage.setItem(STORAGE_KEY, JSON.stringify(ideas)); }, [ideas]); // 其他函数保持不变 }这段代码有两个要点值得分析:
loadIdeas作为useState的初始化函数,只在组件首次加载时执行,避免重复读取。useEffect监听ideas变化,每次数据更新后自动写入 localStorage。
可以顺便提醒一句,这里的try/catch是必要的。万一用户浏览器禁用了 localStorage,或者在隐私模式下写入失败,代码不会直接抛错导致页面崩溃。
4.4 第三轮:增加筛选与空状态
接下来继续迭代,让界面更完整。
提示词示例:
继续优化这个灵感盒子: 1. 顶部增加三个筛选按钮:全部 / 进行中 / 已完成。 2. 当列表为空时,显示“还没有灵感,先记录一条吧”的提示。 3. 筛选后的数据列表要即时更新。核心改动如下。
const [filter, setFilter] = useState('all'); const filteredIdeas = ideas.filter(item => { if (filter === 'all') return true; if (filter === 'active') return !item.done; if (filter === 'completed') return item.done; return true; }); // 渲染部分 <div className="filter-bar"> <button className={filter === 'all' ? 'active' : ''} onClick={() => setFilter('all')}>全部</button> <button className={filter === 'active' ? 'active' : ''} onClick={() => setFilter('active')}>进行中</button> <button className={filter === 'completed' ? 'active' : ''} onClick={() => setFilter('completed')}>已完成</button> </div> {filteredIdeas.length === 0 ? ( <p className="empty-tip">还没有灵感,先记录一条吧</p> ) : ( <ul className="idea-list"> {filteredIdeas.map(idea => ( // 原有卡片渲染逻辑 ))} </ul> )}到这里,一个小而完整的交互应用已经具备了:输入、展示、标记、删除、筛选、空状态、本地持久化。从第一轮脚手架到第三轮功能完善,每一轮间隔只需要一两分钟。这就是 vibe coding 循环迭代最直观的体验。
4.5 把 AI 生成的项目接入真实工程
演示项目跑通之后,有一个问题很多人会忽略:AI 生成的代码不等于可以直接上生产的代码。如果你只是自己玩一玩,那没问题。但如果要把它接入公司项目或长期维护,需要补几步工程化动作。
第一步,把代码纳入 Git 管理。AI 生成的代码经常会有大段改动,没有版本控制的话,一次错误修改就可能让整个项目回不去。
git init git add . git commit -m "feat: 完成灵感收集盒子初版"第二步,检查依赖安全和代码格式。如果项目用了 npm,至少跑一次。
npm audit npx eslint src/第三步,审视可维护性。AI 生成代码通常忽略注释和函数拆分。为了让后续人类同事能看懂,需要把核心函数加 JSDoc 注释,把过大的组件拆分成子组件。
这些步骤不属于 vibe coding 的快乐部分,但它是让快乐可持续的关键。项目越小、越一次性,这些动作可以越轻;项目越重要、越多人使用,这些动作越不能省。
5. 常见问题与排查思路
5.1 AI 生成的代码跑不起来
这是 vibe coding 最常见的挫败点。明明提示词写得很清楚,结果 AI 生成的代码复制到本地就是跑不起来。
从经验来看,原因集中在以下几类:
- 项目初始化不完整,缺少
package.json或依赖没有安装。 - Node.js 版本过低,导致新语法不支持。
- CSS 或资源引用路径错误。
- AI 生成了多个版本的代码,你自己混淆了文件结构。
排查顺序建议如下:
- 检查报错信息,优先在终端里看。
- 确认所有依赖文件都在,
node_modules目录是否生成。 - 对比示例项目的目录结构,看是否缺少关键文件。
- 把报错信息原样丢回 AI 对话框,大多数情况下 AI 能自我修正。
5.2 AI 回答了和需求无关的代码
有时候你问的是 A 功能,AI 却给了一堆 B 功能的代码。这通常发生在“没有限制问题边界”的时候。比如你只是修改一个按钮点击逻辑,但没有告诉 AI 这是 React 项目还是 Vue 项目,AI 就可能按默认偏好生成另一套模板。
解决这个问题的方法是:在提示词开头明确项目技术栈和文件路径。
在下面这个 React+Vite 项目里,修改 src/App.jsx 的按钮点击逻辑,不要修改其他文件。当前代码是:<贴代码>5.3 上下文越来越乱,AI 开始答非所问
这是长时间使用同一次会话时的典型问题。AI 的上下文窗口被早期对话塞满,越往后越容易混淆。
推荐做法是:
- 项目逻辑有明显变化时,新开一个对话,简单描述项目现状。
- 把关键文件内容粘贴进新对话,作为后续上下文基线。
- 不要把整个项目所有代码都贴进去,只贴相关文件。
5.4 生成结果不稳定,每次都不一样
同一个需求,不同时间、不同会话,AI 生成的风格可能完全不同。这在 vibe coding 里是正常现象。
如果你很满意某一次的生成结果,记得及时保存和提交。如果你经常需要稳定复现某类代码,可以在项目中沉淀自己的“代码模板”目录,每次让 AI 参考模板来生成。
5.5 一些常见问题汇总
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 页面空白或启动失败 | 依赖没安装或入口文件不对 | 检查 package.json,确认 main 文件路径 |
| 修改后页面没有变化 | 热更新失效或缓存残留 | 重启 dev server,硬刷新浏览器 |
| localStorage 数据读不到 | 存储 key 不一致或 JSON 解析失败 | 检查 key 和 try/catch 逻辑 |
| AI 生成的组件引用报错 | 文件路径或导出方式不一致 | 打开开发者工具看具体报错路径 |
| 生成的样式完全不对 | 未引入 CSS 文件或类名冲突 | 确认 CSS 文件已 import,检查选择器优先级 |
6. vibe coding 最佳实践与工程建议
6.1 小步快跑,不要一次性生成整个项目
vibe coding 最大的快乐来自快速反馈。保持“一轮提示只解决一个大问题”的节奏,比试图一口气生成一个完整系统要稳得多。建议把项目拆成以下粒度:
- 第一轮:搭出可运行的页面骨架。
- 第二轮:实现核心交互。
- 第三轮:接入数据持久化。
- 第四轮:补样式和空状态。
- 第五轮:整理代码和注释。
每一轮都伴随着运行、观察、调整,而不是最后一次性面对一堆报错。
6.2 用结构化提示词管理复杂需求
当需求比较长时,建议把提示词结构化表达,而不是写一大段话。我常用的格式:
技术栈:React + Vite + localStorage 目标:实现一个灵感收集盒子 已有功能:…… 本次需求: 1. …… 2. …… 不要修改: - 不要修改现有的样式方案 - 不要引入新的依赖这种结构能显著减少 AI 的随机发挥。
6.3 把 AI 当结对伙伴,而不是搜索引擎
vibe coding 的正确用法是对话与协作,而不是一次命令式生成。我会在项目里经常向 AI 解释业务背景、说明需求原因,然后用“你觉得这个问题怎么处理比较好?”来获得方案建议。这样 AI 给出的代码更贴合业务,而不是只有语法正确。
6.4 关注代码安全与合规边界
这里要特别提醒一句:AI 编程工具生成代码时,可能复制了训练语料中的模式。如果你所在的公司对代码开源协议、知识产权保护有严格要求,使用 AI 生成代码前,一定要咨询合规意见。另外,AI 生成的代码如果涉及用户密码、支付、鉴权等敏感逻辑,必须由有经验的后端工程师逐行审查,不能直接信任 AI 的输出。
不要把任何密钥、Token、生产环境数据库连接串直接粘贴到 AI 对话框里。很多团队的通病是图省事,结果把敏感信息作为上下文发送给外部模型。
6.5 版本控制与回滚习惯
vibe coding 项目节奏快,代码变化大,但 Git 提交频率不能因此下降。建议每次功能闭环或 AI 生成满意版本后都提交一次。不要等一个功能全部做完再提交,那是给自己制造风险。
git add . git commit -m "feat: 完成 a 功能"需要回退时:
git checkout . git log --oneline git revert <commitId>6.6 学会分辨“可以交给 AI”和“必须自己把关”
有一段代码清单可以作为参考:
可以交给 AI:
- 页面布局和基础组件。
- 业务 CRUD 逻辑。
- 常见数据处理和格式转换。
- 单元测试用例。
- 注释和文档初稿。
必须自己把关:
- 密码加密与认证流程。
- 支付金额计算与对账。
- 数据库事务边界。
- 涉及用户敏感信息的逻辑。
- 生产环境部署与回滚方案。
这两类职责分清之后,既能享受 AI 带来的效率,又不会因为过度信任而产生安全事故。
7. 尾声:学会与 vibe coding 相处
代码能力不应该是使用 vibe coding 的门槛,但审美和判断力会决定你用它做到什么程度。我见过很多朋友第一次接触 vibe coding 时,会被“AI 居然能自动写一个页面”的震撼感冲昏头脑,恨不得把整个项目都丢给 AI。当他们遇到一次严重报错、一次逻辑错乱、一次数据丢失之后,又会立刻否定这种模式,觉得“AI 根本不能用于实际开发”。
这两种极端都不太健康。vibe coding 更像一种人机协作的节奏练习:你不需要沉迷于每一条 AI 输出的效率,但也不需要对生成结果放任不管。你要做的是在每一个小循环里明确目标、评审输出、修正方向,然后把重复劳动交给 AI。
如果你刚开始尝试 vibe coding,我的建议是从今天就用一个真实的小需求开始,不要先学一堆工具教程。试着打开一个支持 AI 的编辑器,把你的需求描述清楚,看 AI 生成的第一版代码。然后运行它,观察哪里不符合预期,再提一条新的修改意见。这个循环跑顺之后,你会逐渐找到那种“边哼歌边编程”的快乐状态,也更能理解为什么这个词能在短时间内火起来。
希望这篇从概念到实战的教程,能帮你更快地进入状态。如果你在实践过程中遇到了其他有意思的坑,欢迎在评论区分享,大家一起把 vibe coding 的快乐延续下去。