PRD 与文档驱动开发
3.1 AI友好的PRD结构
Tip
学会写AI友好的PRD文档,让AI在写代码前就理解整个系统的全貌。
1. 为什么要学这个?
你可能会直接对AI说:"帮我做一个商城"。
AI会像打鸡血一样生成一堆代码。但当你想加"购物车"功能时,发现它把"商品"和"订单"写死在一个文件里,根本改不动。
想象你要盖房子。
- 没有图纸:工人每天问你"今天盖哪?",你随口说"这里加个房间"。结果盖出来的房子,楼梯通向天花板,门打开是墙。
- 有图纸:工人拿着蓝图,知道哪里是承重墙,哪里是厕所,一次性盖好,不用返工。
关键问题:
- 怎么让AI理解整个系统的全貌?
- 怎么避免AI写出改不动的代码?
- 什么时候需要写PRD,什么时候不需要?
PRD就是给AI的建筑蓝图。
2. 核心概念
2.1 PRD - 产品需求文档
技术定义:PRD(Product Requirements Document)是详细描述产品功能、用户流程、技术栈的文档。
就像建筑蓝图。
- 作用:让AI在写第一行代码前,就知道整个系统的全貌。
- 内容:项目目标、核心功能、用户流程、技术栈、数据模型。
- 好处:避免AI写出改不动的代码,减少返工。
2.2 AI友好的PRD特点
技术定义:AI友好的PRD要结构化、可视化、精简,让AI能快速理解。
就像给工人的施工图。
- 结构化:用标题、列表、表格组织内容
- 可视化:用Mermaid图展示流程
- 精简:只写核心逻辑,不写废话
graph TD
A[用户需求] --> B[写PRD]
B --> C[AI理解全貌]
C --> D[生成代码]
E[没有PRD] --> F[AI猜测需求]
F --> G[生成混乱代码]
G --> H[返工重写]
style A fill:#e1f5ff
style B fill:#fff3e0
style C fill:#e8f5e9
style D fill:#e8f5e9
style F fill:#ffebee
style G fill:#ffebee
style H fill:#ffebee
3. PRD的五要素
📦 要素1:项目目标
一句话讲清楚:做什么?给谁用?解决什么问题?
# 项目目标
一个面向自由职业者的发票生成器,解决Excel开票慢、易出错的问题。
⚙️ 要素2:核心功能
列出3-5个必须有的功能(MVP)。
# 核心功能
- 用户注册/登录
- 发票表单填写
- PDF生成与下载
- 历史记录查询
✨ 要素3:用户流程
用Mermaid画出用户怎么用这个产品。
graph TD
A[用户访问首页] --> B{是否登录?}
B -->|否| C[注册账号]
B -->|是| D[进入仪表盘]
D --> E[点击新建发票]
E --> F[填写表单]
F --> G[预览PDF]
G --> H[下载保存]
style A fill:#e1f5ff
style D fill:#fff3e0
style H fill:#e8f5e9
🔧 要素4:技术栈
明确告诉AI用什么工具,别让它猜。
# 技术栈
- 前端:Next.js 14 + TypeScript + Tailwind CSS
- 组件:shadcn/ui
- 数据库:Supabase
- PDF生成:jsPDF
💾 要素5:数据模型
简单描述核心数据长什么样。
# 数据模型
Invoice (发票)
- id: 唯一标识
- user_id: 用户ID
- amount: 金额
- date: 日期
- status: 状态(草稿/已发送)
4. 什么时候需要PRD?
| 🎯 场景 | 是否需要PRD | 理由 |
|---|---|---|
| 改按钮颜色 | ❌ 不需要 | 原子操作,直接对话即可 |
| 写个图片转换脚本 | ❌ 不需要 | 单一功能,一句话能说清 |
| 做一个全新的商城App | ✅ 必须 | 复杂度极高,必须先有图纸 |
| 给商城加拼团功能 | ✅ 必须 | 大功能模块,需要梳理逻辑 |
5. 避坑指南
| ❌ 不要这样做 | ✅ 应该这样做 | 为什么 |
|---|---|---|
| "帮我做一个像微信一样的App" | 先做"聊天MVP",只有发送文字功能 | 太抽象,AI会不知所措 |
| 写了50页文档 | 核心逻辑讲清楚,细节开发时再补 | 太长吃光Context,AI记不住 |
| 不画图,纯文字描述流程 | 用Mermaid画流程图 | 一图胜千言,AI更容易理解 |
| 没说技术栈,让AI自己选 | 明确指定技术栈 | 避免AI选错工具 |
6. 真实案例
Story
1884年,温彻斯特神秘屋的38年混乱
美国加州的温彻斯特神秘屋,屋主Sarah Winchester雇工人日夜不停建造了38年。关键问题是:她没有建筑蓝图。每天早上随性画张草图给工头:"今天在这里加个房间"。结果这座房子有160个房间,但结构极其诡异:有的楼梯通向天花板(死胡同),有的门打开是墙,有的窗户装在地板上。这座房子现在成了著名的"鬼屋"旅游景点,但作为住宅完全无法使用。
Vibe心法:复杂项目必须先写PRD——目标、功能、流程图、技术栈、数据模型,五要素缺一不可。
7. 本章小结
- 📐 PRD是蓝图:让AI在写代码前就理解整个系统
- 📋 五要素:目标、功能、流程(Mermaid)、技术栈、数据模型
- 🎯 什么时候写:复杂项目和大功能模块必须写,小改动不需要
- 📊 用Mermaid画图:一图胜千言,AI更容易理解
- ✂️ 保持精简:只写核心逻辑,不要超过3页