首页 › Vibe coding 项目实战专栏 › VibeCoding全栈零基础教程(附开源和提示词) › VibeCoding零基础教程(二):技术栈、PRD实操

VibeCoding零基础教程(二):技术栈、PRD实操

一、前置准备​

在进入案例之前,有几件事需要提前准备好。​

​

飞书文档 - 图片

​

1.1 注册 GitHub​

GitHub 是代码托管平台,可以理解成”代码的网盘”。你不需要精通 Git 命令,但需要有一个 GitHub 账号,用来:​

•

Fork(复制)别人的开源项目到自己的账号下,不用担心改坏原项目​

•

保存你的修改,每次改动都有记录,随时可以回退​

•

部署上线,很多部署平台可以直接读取 GitHub 仓库​

1.2 Fork 项目​

Fork 就是把别人的项目复制一份到你自己的账号下。之后的任何修改都是在你的副本上操作,不会影响原项目。​

操作方式:打开项目页面 → 右上角点击 Fork → 确认即可。​

1.3 下载项目到本地​

最简单的方式:在项目页面点击绿色的 Code 按钮,选择 Download ZIP,解压到你想要的目录。​

如果你熟悉 Git,也可以用命令行:​

​

代码块​

Plain Text

git clone https://github.com/你的用户名/rico-md.git​

cd rico-md​

​

1.4 本地启动项目​

rico-md 是纯前端项目,不需要安装任何依赖。三种启动方式任选:​

方式一:让 AI 帮你启动​

如果你用的是 TRAE / Qcoder 等 IDE,直接打开项目文件夹,然后对 AI 说”帮我把这个项目跑起来”,AI 会自动检测环境并启动。​

方式二:用 IDE 插件 “Go Live”​

在 IDE 插件面板找到 “Go Live”,安装后点击右下角启动即可。​

方式三:命令行启动​

​

代码块​

Plain Text

./start.sh​

​

或用 Python:​

​

代码块​

Plain Text

python -m http.server 8080​

​

然后浏览器打开 http://localhost:8080。(Mac 自带 Python,Windows 去 python.org 下载安装)​

1.5 选择 AI 编程工具​

这一篇的操作演示中,使用的是 VS Code + Codex/Claude Code 插件 的使用方式,但你可以选择任意 AI 工具——Cursor、Claude Code、TRAE、Kimi 都可以。​

💡核心流程是一样的:打开项目 → 描述需求 → AI 修改代码 → 查看效果。​

​

​

二、从案例认识技术栈​

在正式动手之前,先用两个案例帮你建立对”技术栈”的直觉——从最简单的静态网页,到本篇的主线实战项目,感受一下不同复杂度的项目分别对应什么技术方案。​

2.1 最简单的起点:一个静态网页​

先看一个最简单的例子。​

HTML+CSS+JS。你发给豆包、Gemini、Kimi 等生成网页,大部分输出的就是这样的 HTML 页面,直接放到浏览器就可以打开。​

这个单页是我用 Blender 做了一套开源图标,为了方便预览就顺带做了个网页,功能和目标很简单:展示和下载资产库。​

​

飞书文档 - 图片

​

​

🚀

​

​

一个小经验: 如果你的需求只是一个好看的展示页面——无论视觉多复杂、交互多有意思,只要不涉及权限、内容管理、登录注册等数据处理——那么 ​

​

2.2 本篇主线案例:rico-md 公众号排版编辑器​

rico-md 是一个面向微信公众号写作与排版的纯前端 Markdown 编辑器。​

我们可以对比一下优化前后的设计和功能​

​

​

​

🚀

当前开发完成的 rico-md 的核心功能:​

•

编辑与预览:左侧 Markdown 编辑,右侧实时预览;支持桌面/iPad/手机预览模式切换​

•

文档管理:多文档创建、切换、复制、删除;文档搜索;自动保存与状态显示​

•

主题系统:20 套公众号正文主题(按风格分类)+ 16 套独立代码块主题​

​

技术栈:Vue 3(CDN)+ markdown-it + highlight.js + IndexedDB + 原生 CSS​

关键概念:IndexedDB(浏览器端本地数据库,存储大文件如图片)、img://(自定义图片协议,映射 IndexedDB 中的图片)、KaTeX / MathJax(公式渲染库,前者轻量适合预览,后者兼容公众号)​

三、实战改造:从 PRD 到功能开发​

3.1 项目文档:PRD.md​

​

🚀

rico-md 项目的PRD、DESIGN、CLAUDE 等文档都放在了 docs 文件夹中。在 Vibe Coding 里,文档的作用不是“写给自己看的说明书”,而是让 AI 快速理解项目状态、目标和边界。对新手来说,最重要的一份文档是 PRD.md。​

​

​

​

如果你刚开始做项目,不需要一上来就准备很多文档。先写好 PRD.md 就够了。​

随着项目变复杂,再补充其他文档:​

​

🚀

•

使用 Claude Code,可以维护 CLAUDE.md​

•

使用 Codex 等 Agent 工具,可以维护 AGENTS.md​

•

做 UI 优化时,再补充 DESIGN.md​

​

​

💡 这些文档真正的价值在于:记录项目的真实状态。 当你开启新的 AI 对话时,它可以通过这些文档快速知道当前项目是什么、哪些地方不能乱改。​

​

3.2 项目结构理顺​

项目很简单,主要是一个 index.html 加一个 app.js(超过3500行代码)。​

​

​

你可以直接这样说:​

​

遵循工程化最佳实践,对当前项目进行代码解耦重构。不要改变现有功能,只整理结构,让后续功能更容易维护。​

​

重构后的重点不是“文件夹看起来更专业”,而是让每一类功能有自己的位置。​

重构之后,我们得到现有项目优化后的结构:​

​

代码块​

Plain Text

├── index.html # 主页面(编辑器)​

├── README.md​

├── start.sh # 一键启动脚本​

├── ../assets/​

└── js/​

├── core/​

│ ├── config.js​

​

这一步做完后,AI 再修改功能时就更容易定位。比如要改图片上传,它会去找图片处理模块;要改主题面板,它会去看 UI 和样式文件,而不是每次都在一个大文件里乱翻。​

而下面是我们最终开发完成的文件结构:​

​

代码块​

Plain Text

rico-md/​

├── index.html # 主页面(编辑器)​

├── about.html # 关于页面​

├── README.md​

├── start.sh # 一键启动脚本​

├── ../assets/​

​

这其实就是拆分组件的思维,不要觉得复杂,拆分和梳理是 AI 做的事,你只需要给明确的命令。​

3.3 建立 PRD 文档​

PRD 不需要写得像公司里的正式需求文档。对 Vibe Coding 来说,它的作用很直接:让 AI 知道这个项目是什么、现在做到哪一步、哪些地方不能乱改。​

一份够用的 PRD,可以先包含这几个部分:​

​

💡

1. 产品定位​

2. 核心能力​

3. 技术实现说明​

4. 产品约束​

5. 关键体验要求​

6. 实现边界​

7. 验收标准​

8. 迭代记录​

9. Todo 与后续规划​

​

下面用 rico-md 的真实 PRD 拆开讲。你不用照抄格式,重点是理解每一部分解决什么问题。​

第一步:产品定位——一句话说清楚”这个东西是什么”​

​

💡

1. 产品定位​

核心目标有三件事:​

1. 让用户能高效完成长文写作与排版。​

2. 让预览结果尽量接近最终粘贴到公众号后台后的效果。​

3. 在不依赖后端和构建系统的前提下,保证本地可用、可保存、可导出。​

​

​

​

💡 关键技巧:产品定位里要包含”不做什么”的信息,这和”做什么”一样重要。​

第二步:核心能力——列出当前已经有的功能​

​

代码块​

YAML

2. 当前核心能力​

​

### 编辑与预览​

- 左侧 Markdown 编辑,右侧实时预览​

- 支持桌面 / 手机预览模式切换​

- 支持常用工具栏操作:标题、加粗/斜体/下划线、链接、代码等​

​

### 文档管理​

- 多文档创建、切换、复制、删除​

- 文档搜索、独立文档标题输入​

- 自动保存与保存状态显示​

- 本地持久化恢复​

​

### 主题与排版​

​

​

​

💡 关键技巧:核心能力按模块分组,让 AI 能快速定位”这个功能属于哪个模块”。​

第三步:产品约束——告诉 AI “哪些东西不能动”​

​

代码块​

Markdown

​

​

​

💡 关键技巧:约束要写得具体,不要只说”保持简洁”,要说”不引入 Vite / Webpack / npm”。AI 需要的是明确的边界,不是模糊的原则。​

第四步:实现边界——明确”现在不做”​

​

代码块​

Markdown

​

​

​

💡 关键技巧:把”暂不做”列出来,能有效防止项目在 Vibe Coding 过程中越做越大。​

第五步:验收标准——做到什么程度才算完成​

​

代码块​

Markdown

## 5. 验收标准​

​

### 编辑与保存​

- 文档创建、切换、删除、复制可正常工作​

- 自动保存状态能正确显示 saving / saved / error​

- 刷新页面后文档与当前状态能恢复​

​

### 公式​

- 复杂块级公式在预览中正常显示​

- 复制到公众号后不出现重复 TeX / MathML 文本​

- 长公式能横向滚动查看完整内容​

​

​

​

验收标准的核心原则:每一条都应该是可以测试的。​

💡 关键技巧:验收标准按模块分组,每条用”能 + 具体动作”的句式,让 AI 知道该测什么。​

第六步:后续方向——给未来留个路标​

​

代码块​

YAML

## 6. 后续方向​

​

后续优先级建议:​

1. 文档备份 / 恢复能力​

2. 图片管理面板​

3. 更稳定的公众号复制验证与回归测试​

4. 自定义代码主题 / 自定义正文主题​

​

3.4 用 PRD 控制 AI​

很多 Vibe Coding 项目失控,不是因为 AI 不会写代码,而是因为我们一开始没有把边界讲清楚。​

我的习惯是:每次准备做一个功能,先更新 PRD,再让 AI 动手。​

比如我要优化图片处理,不会直接说:​

​

帮我优化图片功能。​

​

我会先在 PRD 里补清楚:​

​

🚀

•

这次要优化什么:粘贴、拖拽、上传、复制到公众号​

•

哪些东西不能破坏:img:// 协议、IndexedDB 存储、已有文档里的图片​

•

怎么判断做完:上传后能预览,刷新后不丢失,复制到公众号时图片能带出​

​

然后再对 AI 说:​

​

阅读 PRD.md,按照图片处理相关要求执行。修改前先列 TODO,完成后按验收标准自测。​

​

这样 AI 的工作会稳定很多。它不是只看你当前这一句话,而是会把 PRD 当成项目边界来参考。​

四、用 DESIGN.md 进行设计优化​

功能层面的问题在上面通过 PRD 解决了。​

​

​

制作可以交互UI分两步:​

第一步是搭好布局结构。先自己规划布局。​

​

比如左右侧栏放置各种功能,导航放顶部,底部是状态信息,把框架搭好。当然你也可以完全利用设计 SKILLS 来做。​

​

第二步才是视觉和交互。​

你跟 AI 说”好看一点”或者”设计感强一点”,它可能完全不知道你在说什么。但如果你给它一份结构化的设计文档——定义了配色方案、排版规范、组件样式、交互模式——它就能按你的要求精确执行。这就是 DESIGN.md 的作用。​

4.1 什么是 DESIGN.md​

​

​

DESIGN.md 是一份用设计语言(而非产品语言)写成的指导文档。它和 PRD 的区别很简单:​

​

🚀

•

PRD 管”做什么”——功能、流程、边界​

•

DESIGN.md 管”做成什么样”——视觉风格、配色、排版、交互​

​

你可以把它理解为:把 Figma 里的设计系统,翻译成 AI 能理解的语言。​

一份完整的 DESIGN.md 通常包含这些内容:​

​

​

4.2 怎么生成 DESIGN.md​

可以输入任意网站自动生成完整的设计系统文档,也可以在不同设计令牌格式之间转换(DESIGN.md、tokens.json、variables.css、theme.css)。​

把 DESIGN.md 放到项目根目录,然后对 AI 说:​

​

使用 DESIGN.md 优化设计​

​

执行后查看设计优化效果,再针对细节自己调整。完成后记得让 AI 生成项目最终的 DESIGN.md,保持文档和实际代码一致。​

下面是我使用 DESIGN.md 执行后优化后的页面,效果我觉得是不错的。​

​

​

4.3 为什么推荐在 Vibe Coding 中使用 DESIGN.md​

三个原因:​

第一,AI 对结构化设计指令的理解远优于模糊描述。 “按钮要有悬停效果”不如”按钮 hover 时背景色从 #2d6dc3 变为 #0066ff,过渡时间 150ms”。​

第二,设计师写的 DESIGN.md = 把 Figma 的设计系统翻译成 AI 能理解的语言。 你在 Figma 里做组件化、定义 Variables、整理设计系统时积累的能力,在这里直接有用武之地。​

第三,一次写好,每次迭代都能复用。 DESIGN.md 不需要每次都重写。项目初期花时间定义好设计规范,后续所有的 AI 修改都会自动遵守,保持风格一致性。​

设计师在 Vibe Coding 中的独特优势就是:你比 AI 更懂什么是好的体验。DESIGN.md 是你把这个优势转化为实际效果的工具。​

4.4 验收检查清单​

最后再执行下面这些检查,就已经完成了一次完整的 Vibe Coding 项目改造。 从选技术栈、写 PRD、用 PRD 控制 AI、到设计优化和验收,整个流程都走了一遍。​

​

代码块​

Markdown

**功能验证:**​

​

- [ ] 所有 PRD 中列出的核心功能可以正常使用​

- [ ] 文档创建、切换、保存、删除流程正常​

- [ ] 主题切换即时生效​

- [ ] 图片粘贴/拖拽/上传后能正常预览和复制​

- [ ] 复制到公众号的结果与预览基本一致​

​

​

​

​

五、部署上线、域名与成本​

到这里,项目已经能在本地跑起来了。下一步就是部署上线,让别人也能通过一个网址访问。​

5.1 什么叫部署上线​

本地启动时,你访问的是 http://localhost:8080,这个地址只有你自己的电脑能打开。部署上线,就是把项目放到一个公开服务器上,让它变成类似这样的地址:​

​

代码块​

Plain Text

​

或者绑定自己的域名:​

​

代码块​

Plain Text

https://md.ricoui.com​

​

对纯前端项目来说,部署并不复杂。它本质上就是把 index.html、CSS、JS、图片这些静态文件上传到一个平台,平台帮你生成一个可以公开访问的网址。​

5.2 选哪个部署平台​

常见选择可以先这样判断:​

​

​

5.3 用 Netlify 部署 rico-md​

假设你已经把项目 Fork 到自己的 GitHub 账号下,可以按这个流程走:​

​

🚀

打开 netlify.com,用 GitHub 账号登录。​

点击 Add New Project。​

选择你的 rico-md 仓库,点击 Import。​

​

​

如果是 rico-md 这种零构建项目,重点是确认入口文件 index.html 在项目根目录,或者平台能正确找到它。部署成功后,把生成的网址发给别人,对方就能直接打开。​

​

后面你每次把修改 push 到 GitHub,Netlify 通常会自动重新部署。​

5.4 绑定自己的域名​

如果你已经有域名,可以在 Netlify 项目里这样做:​

​

🚀

进入项目的 Settings。​

找到 Domains。​

输入你的域名,比如 md.yourname.com。​

​

这里不要被 A 记录、CNAME 这些词吓到。你只需要知道:​

​

🚀

•

顶级域名,比如 yourname.com,通常按平台提示配置 A 记录​

•

子域名,比如 md.yourname.com,通常配置 CNAME​

​

​

具体填什么,以部署平台当时显示的提示为准。域名解析有时几分钟生效,有时要等久一点,别急着反复改。​

​

5.5 上线前检查清单​

部署成功不代表完全没问题。上线前自己走一遍,尤其是纯前端项目,很容易在路径和资源上出小问题。​

首页能正常打开,不是 404​

CSS、JS、图片都能加载​

页面刷新后不会白屏​

移动端布局没有明显错位​

图片上传、复制、导出等核心功能还能用​

README、PRD、DESIGN.md 里记录的使用方式是最新的​

如果绑定了域名,https:// 能正常访问​

如果某些图片在本地能显示,上线后显示不了,优先检查路径。比如本地随手写的绝对路径、中文文件名、大小写不一致,都可能在线上出问题。​

六、核心心得​

在结束之前,分享几个在实际 Vibe Coding 过程中总结的关键心得:​

PRD 是控制 AI 方向的最有效工具。​

写一份清楚的 PRD。PRD 让 AI 知道项目的全貌,而不是只盯着你当前这一句话,这是需要练习的能力。​

文档体系(PRD + DESIGN.md + CLAUDE.md)让 AI 更可控。​

PRD 管”做什么”,DESIGN.md 管”做成什么样”,CLAUDE.md 告诉 AI “当前代码是什么样的”。三份文档配合使用,AI 几乎不会做出意料之外的修改。如果项目复杂,就进一步按照渐进式披露的思路来做。​

从简单项目开始,搭积木一样推进。​

rico-md 从一个单文件项目开始,逐步模块化、逐步完善。每一个功能完成,检查通过,git 做好备份,再继续下一个功能的开发。​

让 AI 定期总结当前状态。​

在长对话中,AI 的记忆会逐渐模糊。每隔几轮对话,让 AI “总结一下当前项目的状态和最近的改动”,能帮它重新对齐上下文。​

​

​

附录:几个可以直接复制的 Prompt​

下面这些提示词可以直接复制使用。你不需要一次性全用,按当前阶段挑一个就行。​

​

代码块​

Markdown

// 明确身份和解释深度​

我是一个没有开发基础的新手,请用适合设计师理解的方式解释。​

如果涉及技术概念,请先用一句话解释它是什么,再告诉我为什么现在需要知道它。​

遇到关键选择时,请给我 2-3 个方案,并说明推荐哪一个、为什么推荐。​

​

// 选择技术栈​

我想做一个项目,需求是:​

  1. [写你的项目目标]​

​