U6.11.1The analysis process must be undoable and replayable设计
分析过程需可撤销与重放
别名: 撤销重做 · 分析历史
概念解释
探索是一条操作链:筛选、钻取、排序、切换视图,每一步都改变画面。这条链必须支持两类回退:撤销(退到前一步)与重放(按顺序重新执行整条链)。没有撤销,错误的筛选让用户被迫刷新重来;没有重放,"我怎么走到这个结论的"永远说不清。
机制
撤销在分析场景里的意义比在编辑场景更重,因为分析操作的破坏性是隐性的:一次误筛选不报错、不丢数据,只是让画面悄悄变成另一个口径——用户可能已经基于它说了三句话。撤销链提供的是即时的自我纠错,把"发现错误、定位错误操作、手动重做全部"压缩成"退一步"。重放则服务于三个更深的职能:审计(结论的证据链可逐步检验)、教学(他人可跟着路径走一遍)、自我恢复(换机器、换会话后重建状态)。工程基础是操作历史的数据结构——每一步记录为可逆的状态迁移,而非只存最终状态;快照式历史(只存关键帧)是性能妥协,粒度越细重放越忠实。
边界
撤销语义在分析里有两个易错点:其一,撤销的对象是"操作"而非"数据"——撤销筛选不清空数据,只移除筛选步骤;其二,撤销与上卷(层级回退)是两个原语(钻取组的结论),混用会让用户失去对"我退掉的是什么"的判断。历史长度有实用上限——无限历史占资源也难导航,常见做法是保留完整会话历史、提供可视化时间线供跳转。协作场景的撤销语义复杂(撤销别人的操作吗),多数产品选择"仅撤销自己的操作"并显式标注。
怎么落地
- 分析视图全操作入历史:筛选、钻取、排序、视图切换均可撤销,快捷键可用。
- 提供会话历史时间线,支持跳转到任意一步与整链重放。
- 验证:让用户执行十步探索后撤销五步再重放,核对每步画面与首次执行一致;任何步丢失即历史记录粒度不足。