E6.04.2local result vs global status设计
不应用于局部操作结果
别名: 局部结果 · 全局误用 · toast as global
概念解释
把「这一行已删除」「评论已发布」「筛选已应用」送进全局槽,是把一次局部结果误报成应用状态。全局提示的读者会问「整个产品现在怎么了」,而局部结果的正确答案是「你刚才动的那个对象怎样了」。通道用错,成功的小事被放大成局势,失败的小事被理解成系统坏了。这一条管的是什么内容不准进全局通道,不管全局通道自己该如何常驻。
机制
全局槽被当成世界模型来读:出现即环境变化,消失即环境恢复。局部结果是事件,寿命只有那一次操作。事件进了环境通道,用户会把后续所有页面都放在「刚刚那件事还在生效」的假设里——评论已发布的提示还挂在设置页顶上,人会以为设置页也发了一条评论。反过来,真正的环境变化若被做成操作回执的样子,用户看完就走,不会把它纳入下一步的约束。定位也在泄露归属:全局顶栏离表格里的那一行很远,空间上已经在说「这不是那一行的事」。人用通道身份给消息分级,用错通道等于用错分级。
边界
一次局部操作若改变了整个应用的能力(关掉最后一个管理员权限、删掉当前工作区),结果已经升格为全局状态,该走全局通道,并写清从何时起、对谁生效。批量操作的摘要看起来像全局消息,但它仍属于「这一批对象」,应落在列表或选择栏附近,而不是顶栏。多窗口产品里,窗口 A 的保存成功不应出现在窗口 B 的全局槽,尽管对进程来说它们是同一个应用。日志或审计流以事件为内容,那不是误用全局通道,那是另一种表面。
怎么落地
- 写消息时先问:换一个对象、换一页,这句话还为真吗?不为真就不要进全局槽。
- 对象级成功与失败贴在该对象或触发按钮旁;页面级结果留在该页;只有环境级约束才上全局。
- 审查现有全局槽里的文案,把「已…」这种完成时全部清出去,改成对象旁的回执。
- 验证:完成一次局部操作后立即跳到无关页面。若那条成功或失败还在,通道已经在撒谎。