R2.05.4distribution-derived bounds设计

边界值取自真实数据分布而非想象的极值

别名: 分布取界 · empirical extrema · 真实分位边界

概念解释

交付里用来撑槽位的最长最短,必须能在真实数据里被指认出来。分布取界(distribution-derived bounds)是从该字段的生产分布(或可类比产品的分布)上取分位,再把这些分位写成样例,而不是凭「看起来已经很长」造一句。想象的极值常常造错形状:一串重复字母、一个卡通化的超长德文单词、一个永远两位的中文名,和真实尾部(带空格的复姓、含编号的工单标题、含路径的文件名)不是同一种几何。

它回答的是「两端的值从哪来」,不是「两端的画面要不要交」——后者是另一条知识。没有分布,两端帧会画得像,却验不住。

机制

人在画布上估计长度时,用的是自己见过的样本和工作记忆里的「够夸张」。这个估计对众数友好,对尾部无知。真实字段的破坏点很少落在众数上:破坏的是第 95、99 分位的形状——不是更长一点的同一句话,而是另一种结构(中间插入 ID、前后缀、多段空格、不换行的 URL)。按想象极值做的容器,会为从未出现的卡通长词预留,却在第一条真实长工单上失败。

分位还有方向。取最大值当设计目标,会把极罕见的攻击性粘贴当成日常,把卡片撑成难看的纪念碑;取中位数当上限,又把每天都在发生的尾部推给实现去裁。交付需要声明取的是哪一截:例如「展示到 P99,P99 以外走该类型的溢出策略」。没有这句,样例只是一张好看的长图,和线上分布不相接。

边界

全新产品还没有生产数据时,应借用同类对象的分布(通讯录借已有账号体系的姓名长度,工单借客服历史标题),并在数据进来之后重取分位,而不是把借用值冻成终身上限。被标准钉死的最大长度(银行卡号、身份证号、固定宽度编码)是规范长度,不是分布;用规范长度做样例即可,不必再统计。对抗性输入(有人把整篇文章贴进昵称)应被输入层截住,不应进入「真实分布」去撑日常布局。内网工具若全体用户姓名来自同一套工号规则,分布会极窄,按消费级社交产品的姓名尾部来设计会浪费密度。

怎么落地

  • 对每个关键文本槽拉取最近一个发布周期的字段长度(字符与渲染宽度),至少报告中位数、P95、P99 和最大值;把 P95 与 P99 的真实记录各做成一条样例写进交付。
  • 在帧上标注样例对应的分位,并写明 P99 以外走哪条溢出路径,避免把最大值默认为必须完整展示。
  • 禁止用「最长的那句拉丁文绕口令」或重复字符充当极长样例,除非生产里真的以这种形态出现。
  • 把线上 P99 记录贴进已实现界面,量它是否落在交付所画的几何里。若交付的「极长」比 P95 还短,或比历史上的最大值还夸张出一个数量级,边界值就不是从分布来的。

延伸

  • 同组R2.05.1 极长与极短内容需在设计中给出 · R2.05.2 零、一与多的状态需分别定义 · R2.05.3 未定义的情况会由实现者随意决定 · R2.05.5 溢出策略需按内容类型分别指定 · R2.05.6 多种边界叠加时的表现要单独给出
  • 相邻R2.01 标注与切图 · S1.01 文案膨胀与布局弹性
  • 站内检索distribution-derived bounds · percentile content length · empirical extrema

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/R2.05.4