做产品 PMaker 首页
搜索
跟随系统
颜色主题
空格的键盘
状态遗漏的根源是它们不出现在需求描述里按元素列列表、按钮、输入框各有各的状态,别按页面混在一起写清触发条件「接口 500 或超时」可测,「出错时」不可测问满六句空、加载、失败、禁用、处理中、极值,输入类再加两句列完先自己扫一遍再动手,这时候加状态只是改一行表格

一张能逐条勾的表。写之前列出来,写完对着它验收,两头都用得上。

列状态清单

逐个组件问一遍会出现哪几种样子,再开始写。

开工前把每个元素会出现的样子列成一张表。这张表既是需求,也是验收清单。

你会遇到的现象:

  • 做完了自己点一遍没问题,别人一用就撞到没做的状态
  • 不知道该测什么,只能凭感觉点几下
  • 让 AI 补状态,它补了两个,还有三个没提也没做

状态遗漏的根源是它们不出现在需求描述里。你说「做一个对账页」,脑子里的画面是有数据、一切正常的那一屏。清单的作用就是逼你把其余那些屏也想一遍。清单不是写给别人看的文档,是你自己检查的工具:它把「我记得有这几种状态」变成「这几种状态都列出来了」——前者靠记忆,后者靠纸面。

怎么列

四列就够:元素、状态、触发条件、显示什么。最后加一列打勾,写完的时候当验收表用。列名跟实现和测试里用的词保持一致,免得对不上。

  • **按元素列,不按页面列。**一个页面有列表、按钮、输入框,各自有各自的状态,混在一起会漏。
  • **触发条件要写具体。**写「出错时」不够,写「接口 500 或超时」才知道怎么测。
  • **显示什么要能直接照着做。**写「显示错误提示」不够,写「显示原因加一个重试按钮」才行。
  • **列完先自己扫一遍再动手。**这时候加一个状态是改一行表格,写完再加是改代码。

举一个例子。评论列表这一行:元素是评论列表,状态是空态,触发条件是列表接口返回 200 且数据为空,显示什么是一个占位插画加一句「还没有评论,来发第一条」。这一行写完,实现的人不用再猜,验收的人也有依据。

对每个元素问六句

六句对应六种状态,逐个元素问一遍,缺一个就少一屏的设计:

对应的状态
没有数据时呢 空态。要区分「本来就没有」和「筛选筛没了」
数据还没回来呢 加载态。超过一秒才需要显示
失败了呢 错误态。要有原因和重试
不能点的时候呢 禁用态。还要说清为什么不能点
正在处理的时候呢 处理中。按钮要锁住,防重复提交
数据特别多或特别长呢 截断、折叠、分页。极值下布局不能垮
校验不过呢(输入类) 校验态。当场指出并说明规则
只读时呢(输入类) 只读态。内容可看不可改,样式要区分

第六句最容易被跳过。它不是状态,是边界,但表现出来的效果一样——一个四十字的名字能把整行布局挤变形。后两行是输入类元素专属的,列表和按钮用不上,但表单页面离不开。

六句里最核心的是前四句,对应四态齐全——那一篇讲了每种状态各自该回答什么问题。清单的作用,是把它们从概念变成你这份需求里逐条可勾的行。

给 AI 的话

让 AI 先出清单,你改几行,再让它照着实现。比直接要代码稳得多——因为你改的是表格,不是改代码,错得越早改得越便宜。

PROMPT · 状态清单

页面:[页面名和用途]
主要元素:[列表 / 表单 / 按钮 / 筛选器…]

先不要写代码。请输出一张状态清单,表格四列:
元素 | 状态 | 触发条件 | 显示什么

要求:
1. 逐个元素过一遍这六个问题:没数据、加载中、失败、
   禁用、处理中、极值(超长内容 / 超多条数)。
2. 输入类元素额外列出:校验失败、只读。
3. 触发条件写具体,比如「接口返回 500 或超时 10s」,
   不要写「出错时」。
4. 显示什么要能直接照着实现,包含文案要点。
5. 最后单独列出你不确定的状态,问我要不要做。

我确认清单之后再写代码。实现完成后,
按这张清单逐条自检,报告哪几条做到了、哪几条有偏差。

这张表列完,它同时就是验收清单:让 AI 逐条自检、你逐条打勾,再交付。比上线之后靠用户撞到没做的状态,成本低一个数量级。清单越具体,AI 能自己抓出的偏差就越多,返工就越少。