🛠️ 零基础用 Claude Code 做出第一个小程序 · 第 1 周:从零到第一个上线的网页

怎么给 AI 写需求:用户故事模板 + 范围控制(Claude Code 实战)

AI 做不好,八成是你没想清楚

一句话先懂 · TL;DR

AI 编程最容易失控的不是代码,是需求越做越大。学会用「作为谁、我要什么、为了什么」写用户故事,用「这次不做」清单锁范围,用边界情况问答把逻辑聊透。

用户故事:一句话说清楚给谁、做什么、图什么

「做个预约功能」这句话里,AI 不知道谁预约、预约什么、预约完发生什么。用户故事把这三件事逼你说出来:

作为(谁),我要(做什么),为了(得到什么)。

作为 到店顾客,
我要 在手机上选一个时间段提交预约,
为了 不用打电话也能确定我那天有位子。

作为 店员,
我要 在后台看到今天所有预约并标记「已到店」,
为了 不用再翻微信聊天记录核对。
💡每一个「作为谁」都是一个角色。角色不同,看到的页面就不同。先把角色列全,功能自然就分清了。

「这次不做」清单,比「要做」清单更重要

一个真实案例:有人接了一个门店小程序,客户要求 14 天上线。他做的第一件事不是写代码,而是和客户一起把在线支付、自动打款、复杂排班、会员积分全部划到「这次不做」,只留作品展示、预约、渠道绑定、后台。最后 10 天交付。

AI 写代码很快,但范围是你定的。范围不锁,它会很快地做出一堆你不需要的东西。

第一版必做:
- 顾客:看作品、提交预约、查自己的预约
- 店员:看预约列表、标记已到店

这次不做(写进 CLAUDE.md 让 AI 也知道):
- 在线支付
- 会员积分
- 多门店
- 消息推送

动手前,把边界情况问一遍

另一个真实案例:一位不会代码的人用 Claude Code 11 天做出自己的业务管理系统,对账从 2 小时缩到 5 秒。他的秘诀是每个功能开工前先和 AI 聊边界情况

- 客户微信号输错了能改吗?改了以后历史订单怎么办?
- 一个客户 3 单里 1 单没付款,算不算老客户?
- 订单取消了,还算坏账吗?

这些问题你不答,AI 就替你答,而且你不知道它答了什么。

💡万能三问:空的时候怎么办(还没有任何数据)、重复的时候怎么办(同一条加了两次)、输错的时候怎么办(填了个空格或者负数)。

自测 · 学完检查一下

想真正动手做题、记进度、攒连胜?到互动课里练。

哪一条是合格的用户故事?

答案:作为健身房会员,我要在小程序里看到自己剩余课时,为了不用每次去前台问

第一条有角色、动作、动机三段。第二三条没有角色和动机;第四条形式对但主角是开发者,用户故事的主角永远是用你产品的人。

用户故事的固定句式是:作为 ___,我要 ___,为了 ___。第一个空填的是什么?(填两个字)

答案:角色

第一个空是角色,也就是「谁在用」。同一个功能,顾客和店员两个角色要的完全不一样,所以先定角色。

小婷做一个「家庭菜谱」小程序,第一版只有她和妈妈用。下面哪项最应该进「这次不做」?

答案:用户注册登录和多人权限管理

第一版只有两个人用,登录和权限是为「很多陌生人」准备的,现在做只会拖慢上线。添加、搜索、保存是这个产品成立的最小骨架,必须做。锁范围的判断标准是:没有它,第一版还能不能用。

判断:既然 AI 写代码很快,第一版就该把能想到的功能都做上,反正不费自己的时间。

答案:

费的不是写代码的时间,是验收、修 bug、和后续每次改动都要照顾这些功能的时间。功能越多,改一处坏三处的概率越高。第一版越小,上线越快,你越早知道用户到底要什么。

做「预约时间段」功能前,下面哪个问题属于必须先想清楚的边界情况?

答案:两个顾客同时抢同一个时间段,谁算成功

边界情况是「正常流程之外会发生的事」:冲突、重复、为空、出错。颜色、文案、字体是外观,改起来随时可以,撞单的规则不先定,上线后就是纠纷。

AI 问你:「待办清单为空的时候,页面显示什么?」你还没想过。最合适的回应是?

答案:当场定下来:显示一行灰字「还没有待办,输入第一条吧」

边界情况的答案必须由你给。「你看着办」意味着它替你决定而你不知道;「不重要」和「不会发生」都是在给上线后埋雷,用户第一次打开页面看到的就是空状态。

想边练边学,而不只是读?

到互动课里答题、记进度、攒连胜——游客即可试学,无需注册。

进入互动课程 →

学点新东西,不错过更新

新课程、新功能、学习小技巧——偶尔一封,随时退订。