用Claude Code做需求分析:如何正确提问才能一次搞定
用Claude Code做需求分析:如何正确提问才能一次搞定
学习来源:跟老金老师学的 Claude Code 系列课程
你有没有过这种感觉——AI给的答案总是"差点意思",不是自己真正想要的?
说实话,这事儿我踩过不少坑。一开始总以为是AI不够聪明,后来才发现,问题往往出在我问问题的方式上。
AI不会读心术。 你给的信息越模糊,它只能靠猜,猜错的概率能不大吗?
一、核心原则:把AI当实习生
这是我跟老金老师学到的最重要的一句话:
想象你有个刚入职的实习生,你怎么说他才能一次听懂?
好需求 = 具体场景 + 明确目标 + 约束条件 + 输出格式
就这么简单?对,但90%的人做不到。
为啥?因为我们习惯了跟人说话时"省略常识"——跟同事说"搞个用户管理",对方知道你们的技术栈、业务逻辑、UI规范。但AI不知道啊,你跟它说"搞个用户管理",它只能给出最通用的方案。
二、常见踩坑 vs 正确姿势(我全都踩过)
踩坑1:太笼统,AI靠猜
❌ 错误示范:
帮我做个网站
AI内心OS:啥网站?企业站?博客?电商?SaaS?资讯?完全不知道方向。
✅ 正确姿势:
帮我做一个个人简历网站
需求说明:
- 技术栈:Next.js 14 + Tailwind CSS
- 单页设计,滚动式布局
- 必须包含:个人简介、工作经历、技能标签云、联系方式表单
- 设计风格:简洁专业,主色调蓝色系
- 移动端适配(重点!)
- 部署到 Vercel
请先生成项目结构和组件规划,我再确认。
效果对比:
| 维度 | 笼统提问 | 精准提问 |
|---|---|---|
| 第一次就满意的概率 | ~10% | ~70% |
| 来回修改的次数 | 5-8轮 | 1-3轮 |
| 花费的时间 | 30分钟+ | 10分钟 |
| Token消耗 | 高(反复生成) | 低(一次到位) |
踩坑2:不给上下文,AI无从下手
❌ 错误示范:
这个代码报错了,帮我看看
没贴代码、没贴错误信息、没说在干什么。AI只能回"请提供更多信息"——等于白问。
✅ 正确姿势:
我在运行测试时遇到了一个错误,帮我分析原因并修复:
项目背景:
- Node.js 18 + Express 4 + MongoDB
- 用 Jest 跑单元测试
错误信息:
TypeError: Cannot read properties of undefined (reading 'id')
at Object.<anonymous> (tests/user.test.js:25:18)
相关代码(user.test.js 20-35行):
it('should return user by id', async () => {
const user = await UserService.getUserById('123')
expect(user.id).toBe('123') // ← 第25行报错
})
UserService.getUserById 的实现:
async getUserById(id) {
const user = await UserModel.findById(id)
return user
}
这样AI才能精准定位问题——哦,findById 返回了 null,没有做空值处理。
踩坑3:目标太模糊,AI不知道往哪使劲
❌ 错误示范:
帮我优化一下这个函数
"优化"这个词太宽泛了——优化性能?可读性?安全性?内存占用?不同的方向,做法完全不同。
✅ 正确姿势:
帮我优化这个函数,按以下优先级:
1. 【最高优先】安全性 - 防止SQL注入,验证输入
2. 【中等优先】可读性 - 加必要的注释,提取子函数
3. 【最低优先】性能 - 这段代码调用频率不高,性能不是瓶颈
函数代码:
[贴代码]
告诉AI你的优先级,它就知道往哪儿使劲了。否则它可能会花大量时间做你不需要的优化。
踩坑4:一次塞太多,AI消化不了
❌ 错误示范:
帮我做一个完整的电商系统,包含用户注册登录、商品管理、购物车、订单、支付、后台管理、数据统计、消息通知、优惠券系统……(以下省略100个需求)
✅ 正确姿势: 分阶段提需求:
第一阶段:帮我搭一个电商系统的项目骨架
- Next.js 14 + Prisma + PostgreSQL
- 只需要用户注册/登录功能
- 先做最基本的目录结构和数据库模型
第二阶段:[等第一阶段完成后再提]
三、5个万能提问模板(建议收藏)
这些模板我每天都在用,覆盖了最常见的开发场景:
模板1:实现新功能
我想实现[功能描述],当前已有[现有代码/项目情况]。
期望结果是[具体目标]。
约束条件:[技术栈/规范/限制/性能要求]
输出格式:[代码/文档/分析报告]
实战案例:
我想在现有Next.js项目中添加用户权限管理功能。
当前已用NextAuth做了基础登录,users表有role字段(admin/user)。
期望实现:不同角色看到不同的导航菜单和页面。
约束:使用middleware实现路由保护,不要额外引入权限库。
请给出完整的实现方案和代码。
模板2:修复Bug
遇到问题:[错误现象/错误信息]
环境:[语言/框架/版本]
相关代码:[贴关键代码]
已尝试的方法:[你试过的解决方式,避免AI重复建议]
实战案例:
遇到问题:React Hook useEffect 缺少依赖项警告,但加上依赖后会无限循环。
环境:React 18,函数组件
相关代码:
useEffect(() => {
setData(process(items))
}, [items]) // ← 如果加上 items 会无限循环
已尝试:
1. 把 items 加入依赖 → 无限循环
2. 用 useRef 存储 items → 可以但不优雅
3. 用 useMemo 处理 process(items) → 依然有警告
请帮我分析根本原因并给出最佳解决方案。
模板3:代码审查
帮我审查这段代码,重点关注以下维度(按优先级排序):
1. 安全性:有没有SQL注入、XSS等漏洞风险
2. 性能:有没有N+1查询、不必要的重渲染
3. 可维护性:命名是否清晰、有没有重复代码
4. 错误处理:边界情况有没有覆盖
代码:
[贴代码]
如果是问题代码,请给出修复方案。
模板4:技术选型
项目背景:[项目类型/规模/团队情况]
核心需求:[要解决什么问题]
候选方案:[方案A/方案B/方案C]
评估维度:学习成本、维护性、性能、生态成熟度
帮我分析各方案的优劣,给出推荐并说明理由。
实战案例:
项目背景:团队5人,技术栈React,做一个中后台管理系统,2个月工期。
核心需求:状态管理方案选型。
候选方案:Zustand / Jotai / Redux Toolkit
评估维度:学习成本(团队React中级水平)、开发效率、维护性。
请给出推荐。
模板5:学习新知识
我想了解[主题],当前基础是[你的水平]。
请用通俗易懂的方式解释,最好有类比。
重点讲清楚[你最关心的那几个点]。
如果可以,给一个最小可运行的例子。
实战案例:
我想了解React Server Components(RSC),当前基础是:
- 熟练使用React 18客户端组件
- 对Next.js App Router有基本了解
- 不太理解"服务器组件"和"客户端组件"的区别
请用类比的方式帮我理解:
1. RSC解决了什么实际问题?
2. 什么时候用服务器组件、什么时候用客户端组件?
3. 给一个最简单的对比例子
四、进阶技巧:让AI回答质量再上一个台阶
技巧1:角色扮演法
让AI设定一个专业角色,回答质量会明显不同:
你是一个有10年经验的前端架构师,曾在阿里、字节带过团队。
我现在要做一个中后台系统,技术栈 React + Ant Design Pro。
请帮我分析目录结构怎么组织最合理,并解释你的设计思路。
比"帮我设计目录结构"得到的答案会深入得多。
技巧2:给AI"思考模板"
在回答之前,请按以下步骤思考:
1. 先理解我的需求,如果有不清楚的地方,列出你的疑问
2. 分析可能的方案,评估每个方案的优缺点
3. 给出你的推荐方案和理由
4. 最后才是具体实现
这样AI给出的答案结构清晰、逻辑完整,不会直接跳结论。
技巧3:迭代式提问
不要追求一次性完美,用"反馈→调整"的迭代模式:
# 第1轮:让AI先出方案
> 帮我设计一个用户注册功能的技术方案
# 第2轮:反馈调整
> 方案不错,但密码策略我想调整一下:
> 1. 不用密码复杂度要求,改用密码强度实时检测
> 2. 增加短信验证码验证
> 请更新方案
# 第3轮:细化实现
> 方案确认了,先从后端 API 开始实现
技巧4:让AI自我纠错
等一下,你刚才的建议有一个潜在问题——
如果并发量大的话,这个方案会出现竞态条件。
请重新考虑并给出更健壮的方案。
AI会承认错误并重新分析,比你自己去查资料快多了。
五、真实案例:提问质量决定答案质量
需求:写一个用户注册API
❌ 笼统提问:
帮我写一个注册接口
AI给出的可能是最简单的 Express + 内存存储 的demo代码,完全不能用。
✅ 精准提问:
帮我用Express写一个用户注册API,要求如下:
功能要求:
1. 支持用户名、邮箱、密码注册
2. 密码用bcrypt加密存储
3. 注册成功后返回JWT token
4. 邮箱格式和密码强度(8位以上,含大小写字母+数字)校验
5. 同一邮箱不能重复注册
技术栈:
- Node.js + Express + MongoDB(Mongoose)
- JWT认证
请生成以下内容:
1. 路由文件(routes/auth.js)
2. 控制器(controllers/auth.js)
3. 数据模型(models/User.js)
4. 验证中间件(middleware/validate.js)
5. 对应的测试用例
差距非常明显——一个是玩具代码,一个是能直接用的生产级代码。
六、一句话总结
| 你的问法 | AI表现 | 需要多少轮 |
|---|---|---|
| "帮我做个网站" | 猜你心思,大概率跑偏 | 5-8轮 |
| "写一个注册接口" | 给个demo应付了事 | 3-5轮 |
| "用Express写注册API,需要bcrypt加密+JWT返回" | 生产级代码 | 1-2轮 |
| "技术栈+功能+约束+输出格式全给齐" | 一次性完美交付 | 0-1轮 |
记住: 你多花30秒写清楚需求,AI帮你省30分钟来回修改。
对AI提问,就像跟同事沟通需求一样——越清晰、越具体、越有结构,效率越高。
本文学自老金老师的Claude Code系列教程。