交互设计原则
2026-09-19 19:01:45
预计阅读 4 分钟
目标:缩短用户意图、系统状态与真实结果之间的距离。
真实对象 → 就近行动 → 即时反馈 → 真实结果
↑ ↓
无隐藏模式 ← 可退出、可恢复
1. 直接操作真实对象(WYSIWYG)
让用户直接操作业务对象,不必把意图翻译成系统概念。
- 使用用户语言,如文档、订单、成员和余额;避免记录、ID 和状态码等实现概念。
- 行动靠近对象,结果由对象本身呈现。
- 优化语义距离,而非只减少点击。
- 不强求内联编辑;批量处理和复杂配置仍可使用专用工作区。
2. 建立即时连接(Immediacy)
Bret Victor 强调创作者与作品的即时连接。产品应让操作、反馈与结果形成连续闭环。
- 可预览变化连续呈现。
- 异步请求立即在对象上显示进度。
- 完成后由对象呈现成功或失败。
- 即时反馈不等于提前成功;关键状态等待权威数据确认。
3. 默认无模式(No Modes)
No Modes 反对会暗中改变操作含义的持久模式,而非一切状态或弹窗。
可接受的模式应局部、明显、短暂、易退出。危险模式往往:
- 影响整个工作区且提示不明显;
- 让同一输入产生不同结果;
- 无法从界面判断当前状态;
- 难以退出,或退出会丢失工作。
4. 可撤销优先(Undo First / Reversibility)
可撤销让用户在看到结果后修正,比事前猜测后果更可靠。
- 可恢复操作:直接执行,提供撤销或回收站。
- 编辑与异步操作:允许取消;失败时保留输入,并支持回滚或重试。
- 资金、权限、对外发送等操作:事前确认对象、范围和后果。
- 不可逆操作:明确说明无法恢复,不只问“确定吗”。
反馈与提交策略
| 操作类型 | 推荐反馈 | 提交策略 | |---|---|---| | 本地、连续、可逆 | 对象实时变化 | 即时应用,提供撤销 | | 普通异步更新 | 对象显示进行中 | 可安全回滚时乐观更新,否则等待确认 | | 关键服务端真值 | 立即显示请求已开始 | 服务端确认后才显示最终成功 | | 可恢复删除 | 对象移出当前视图 | 软删除、回收站或限时撤销 | | 不可逆或外部影响 | 事前展示对象、范围和后果 | 明确确认后执行 |
设计与验收清单
- 业务对象和用户语言是否明确?
- 状态、行动和限制是否就近呈现?
- 结果是否由对象表现,而非只靠 Toast、跳转或刷新?
- 变化是否连续?异步状态是否区分进行、成功和失败?
- 失败后能否回滚、重试并保留输入?
- 是否存在隐蔽、全局或持久的模式?
- 必要模式是否局部、明显、短暂、可退出?
- 操作能否撤销或修正?必须确认时,是否说明对象、范围和后果?
- 是否为减少点击牺牲了理解、安全、一致性或恢复能力?