VibeCoding 实战:用 Qoder 从零开发 Java Spring Boot WMS 系统(三)
第2章 需求分析:把"我想做个WMS"变成一份PRD
本章目标:学会用 Qoder 的对话/规划能力,把一个模糊的想法("做个仓库管理系统")一步步澄清、细化,最终产出一份可指导开发的《需求规格说明书(PRD)》并保存为文档。这是 VibeCoding 中最容易被跳过、却最影响成败的一步。
学习目标
- 理解"为什么 VibeCoding 也要先做需求分析"
- 会用多轮追问的方式,引导 AI 帮你把需求挖清楚
- 能产出并保存一份结构完整的《WMS 需求规格说明书》
- 学会给需求划范围、分优先级,避免项目无限膨胀
2.1 为什么不能一上来就让 AI 写代码?
很多新手接触 VibeCoding 的第一个误区,是打开对话框就打:"给我写个仓库管理系统"。 结果 AI 会给你一个"看起来挺全"但方向随机的东西:它不知道你面向电商还是制造业、要不要多用户、前端用什么——它只能猜。猜错了,你要返工;越改越乱,最后失控。
记住 VibeCoding 的第一原则:AI 的执行能力很强,但"要做什么"必须由你想清楚。 需求分析就是"想清楚"的过程,而 Qoder 是你思考的"陪练"——它能帮你把问题问全、把盲点补上。
2.2 需求分析的整体打法
本章使用 Qoder 的 Chat(对话) 能力为主,采用三段式:
- 让它当需求分析师,反过来采访你——你不可能一次想全所有需求,先让 AI 向你提问。
- 你来回答并划定范围——明确"做什么、不做什么、先做什么"。
- 让它汇总成 PRD 文档——把对话结论固化成一份结构化文档并存盘。
打开 Qoder 对话面板,我们开始。
2.3 第一步:让 Qoder 扮演需求分析师来"采访"你
提示词(复制粘贴)
你现在是一位资深的企业级软件需求分析师。我要开发一个「轻量版 WMS 仓库管理系统」,
面向学习者做教学演示,技术栈是 Java Spring Boot。
请先不要写任何代码,也不要直接给结论。你的任务是「采访」我,帮我把需求问清楚。
请从以下维度,一次给我 5~8 个关键问题(不要太多,方便我逐个回答):
- 系统的使用角色(比如仓管员、管理员)
- 核心业务闭环(仓库里到底要管哪些事)
- 单据与流程(入库、出库是怎么流转的)
- 数据范围(商品、库存、仓库、储位之间的关系)
- 非功能需求(登录、权限、数据量、性能)
问完第一轮后,根据我的回答继续追问,直到你认为需求足够清晰,再告诉我"可以开始整理 PRD 了"。
预期结果
Qoder 会抛出一轮结构化问题,例如:
- 系统有几类用户?分别能做什么?
- 一个仓库里是否有多个储位(货架/库位)?商品和储位是什么关系?
- 入库是"采购入库"还是有多种入库类型?入库要不要经过审核?
- 库存是按"商品"记,还是按"商品 + 储位"记?
- 需不需要库存盘点?需不需要记录每一笔库存变动流水?
你的回答(参考模板)
不用逐字照抄,按你理解回答即可。下面给一份"标准答案"供参考:
我的回答:
1. 角色:两类——管理员(管基础数据、审核单据)、仓管员(创建/执行出入库)。登录即可,先不做复杂权限。
2. 一个仓库下有多个库区,库区下有多个储位;库存按「商品 + 储位」维度记录。
3. 入库先做一种「采购入库」:仓管员创建入库单(草稿)→ 管理员审核 → 仓管员执行入库(上架到储位,写库存)。
4. 出库做「销售出库」:创建出库单 → 审核 → 拣货执行(扣减库存)。
5. 库存需要能查询,并记录每一笔变动的库存流水。
6. 需要盘点:按储位盘点,发现系统库存和实际不一致时生成盘盈/盘亏调整库存。
7. 商品需要分类、编码、规格、单位。
8. 数据量不大(教学演示),单机部署即可。要有登录鉴权(JWT)。
9. 暂时不做:多租户、PDA、打印、条码、对接快递/外部系统、报表大屏。
注意事项
- ⚠️ 一定要主动"减需求"。AI 倾向于"你要的我全给加上",这会让项目失控。像上面第 9 条那样明确写出"暂时不做什么",是控制范围的关键动作。
- 💡 不确定的地方,可以继续问 AI:"企业里 WMS 的入库一般还包含哪些环节?" 让它补充行业知识,你再决定要不要采纳。
2.4 第二步:让 Qoder 复述并补全,确认无歧义
当 AI 判断问题问得差不多,会说"可以开始整理 PRD"。在那之前,先让它用你自己的话复述一遍,防止理解偏差。
提示词
在整理 PRD 之前,请你用要点列表,把你理解到的这个系统的:
1. 角色与权限
2. 核心业务流程(入库、出库、盘点分别用"步骤1→步骤2→..."表示)
3. 主要业务对象及它们之间的关系
复述一遍给我确认。如果发现有遗漏或前后矛盾的地方,直接指出来并向我提问。
先不要生成完整 PRD 文档。
预期结果与你的动作
- AI 会给出流程复述,比如入库流程:"创建入库单(草稿) → 提交审核 → 审核通过 → 执行入库(选择商品+储位+数量) → 生成库存/库存流水 → 入库单完成"。
- 你的动作:逐条核对。发现不对的地方立刻纠正,例如:"入库执行时应允许一行商品上架到多个储位"——把这类细节在这里敲定,比开发后再改成本低 10 倍。
2.5 第三步:生成正式的《需求规格说明书》并存盘
确认无误后,让 AI 产出结构化 PRD,并保存成项目里的文档文件(后续设计、开发、甚至你忘了需求时都能回查——这是 VibeCoding 的"文档即资产")。
提示词
需求已经清晰,请生成一份完整的《轻量版 WMS 需求规格说明书》,用 Markdown 格式,包含以下章节:
1. 项目概述(目标、面向用户、解决的痛点)
2. 角色与权限(表格:角色 / 职责 / 可操作功能)
3. 功能需求清单(按模块划分:基础数据、入库、出库、库存、盘点、登录鉴权;
每个功能点用「编号 + 功能名 + 描述 + 优先级(P0/P1/P2)」的表格表示,P0 必做)
4. 核心业务流程(入库、出库、盘点,用文字步骤 + Mermaid 流程图代码)
5. 业务对象及关系(商品、仓库、库区、储位、库存、入库单、出库单、盘点单等,
说明关系,用 Mermaid ER 图或表格)
6. 非功能需求(登录鉴权、数据量、部署形态)
7. 明确不做的范围(Out of Scope,列出我们讨论过但排除的功能)
8. 开发里程碑建议(把 P0 功能按依赖顺序排成几个阶段)
生成后,请把这份文档写入到当前工作区目录下的 docs/需求规格说明书.md 文件中,
并在对话里告诉我文件已创建。
💡 让 AI"写入到文件"是 Agent 的能力。若你当前在纯 Chat 模式无法写文件,就让它先把 Markdown 输出在对话里,你手动新建
docs/需求规格说明书.md粘贴保存即可——效果一样。
预期结果
- 工作区
docs/目录下出现需求规格说明书.md - 文档里有功能清单表格、流程图、ER 图、"不做的范围"和里程碑
检查 PRD 质量的 4 个问题
拿到文档别急着往下走,用这 4 个问题自检(不合格就回去让 AI 改):
- 功能清单有没有"优先级"? 全是要做的 = 没做减法。确认 P0 是最小可用集。
- 流程图能不能读懂? 入库/出库/盘点的每一步、每个状态是否清楚。
- "不做的范围"写了吗? 这是防止后面 scope 蔓延的护栏。
- 业务对象是否齐全? 商品/仓库/库区/储位/库存/三类单据/库存流水,一个都不能漏——第3章的数据库设计要直接映射它们。
2.6 第四步:锁定"最小可运行版本"的范围
最后一步,让 AI 帮你从 PRD 里提炼出第一个里程碑(M1)到底做哪些功能,作为第3、4章设计与开发的输入。
提示词
基于这份 PRD,帮我提炼出「里程碑 M1(最小可运行版本)」的范围:
- 只保留支撑"商品入库→库存→出库"这条主链路所必须的功能(P0)
- 明确列出 M1 要做的功能点编号清单,以及被推迟到 M2/M3 的功能点
- 输出一句话的 M1 验收标准(怎样算"跑通了")
把这段结论追加写入到 docs/需求规格说明书.md 的末尾,标题为「## 附:里程碑划分」。
预期结果(参考)
一份合理的 M1 结论大概长这样:
- M1 功能清单:登录鉴权、仓库/储位/商品基础数据、采购入库全流程、销售出库全流程、库存查询、库存流水。
- 推迟到 M2/M3:盘点(M2)、库存预警、数据看板、Excel 导入导出(M3)。
- M1 验收标准:"能用一个账号登录,录入商品和储位,创建入库单并审核执行后库存增加,再创建出库单拣货后库存减少,且每一步都能在库存流水里查到记录。"
📌 这句验收标准请记下来,第9章我们会回到它,逐条验证系统是否真的跑通。
本章检查清单
- [ ] 通过多轮问答,把 WMS 需求澄清清楚了
- [ ] 明确写了"不做什么"(Out of Scope)
- [ ] 生成了
docs/需求规格说明书.md,含功能清单(带优先级)、业务流程、业务对象关系 - [ ] 提炼出 M1 最小可运行版本范围与一句话验收标准
完成后,带着这份 PRD 进入 第3章 系统设计。
常见问题
Q:我嫌麻烦,能不能跳过需求分析直接到第4章写代码? A:能跳,但你会在第6~7章反复回来改。教学项目尚且如此,企业项目更是血泪教训。花 30 分钟把需求写清楚,是本章存在的意义。
Q:AI 问的问题我答不上来怎么办? A:答不上来就反问它。例如"仓储行业一般怎么定义储位?" 让 AI 先给建议,你再拍板。需求分析阶段没有标准答案,只有"适合你这个项目的选择"。
Q:PRD 一定要用 Markdown 存成文件吗?
A:强烈建议。存成文件后,第3章做设计、第4章写代码时,都可以用 # 引用这份 PRD 喂给 Qoder,保证 AI 始终按你定好的需求干活,而不是凭上下文遗忘后瞎猜。