← 回到成长记录
工具·

用Claude Code做需求分析:如何正确提问才能一次搞定

#Claude Code#AI编程#需求分析#提问技巧

用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系列教程。

💬 评论

评论功能开发中,欢迎去GitHub提 issue。