豪言微语
长文

交互设计原则

2026-09-19 19:01:45 预计阅读 4 分钟

目标:缩短用户意图、系统状态与真实结果之间的距离。

真实对象 → 就近行动 → 即时反馈 → 真实结果
               ↑             ↓
             无隐藏模式 ← 可退出、可恢复

1. 直接操作真实对象(WYSIWYG)

让用户直接操作业务对象,不必把意图翻译成系统概念。

  • 使用用户语言,如文档、订单、成员和余额;避免记录、ID 和状态码等实现概念。
  • 行动靠近对象,结果由对象本身呈现。
  • 优化语义距离,而非只减少点击。
  • 不强求内联编辑;批量处理和复杂配置仍可使用专用工作区。

2. 建立即时连接(Immediacy)

Bret Victor 强调创作者与作品的即时连接。产品应让操作、反馈与结果形成连续闭环。

  • 可预览变化连续呈现。
  • 异步请求立即在对象上显示进度。
  • 完成后由对象呈现成功或失败。
  • 即时反馈不等于提前成功;关键状态等待权威数据确认。

3. 默认无模式(No Modes)

No Modes 反对会暗中改变操作含义的持久模式,而非一切状态或弹窗。

可接受的模式应局部、明显、短暂、易退出。危险模式往往:

  • 影响整个工作区且提示不明显;
  • 让同一输入产生不同结果;
  • 无法从界面判断当前状态;
  • 难以退出,或退出会丢失工作。

4. 可撤销优先(Undo First / Reversibility)

可撤销让用户在看到结果后修正,比事前猜测后果更可靠。

  • 可恢复操作:直接执行,提供撤销或回收站。
  • 编辑与异步操作:允许取消;失败时保留输入,并支持回滚或重试。
  • 资金、权限、对外发送等操作:事前确认对象、范围和后果。
  • 不可逆操作:明确说明无法恢复,不只问“确定吗”。

反馈与提交策略

| 操作类型 | 推荐反馈 | 提交策略 | |---|---|---| | 本地、连续、可逆 | 对象实时变化 | 即时应用,提供撤销 | | 普通异步更新 | 对象显示进行中 | 可安全回滚时乐观更新,否则等待确认 | | 关键服务端真值 | 立即显示请求已开始 | 服务端确认后才显示最终成功 | | 可恢复删除 | 对象移出当前视图 | 软删除、回收站或限时撤销 | | 不可逆或外部影响 | 事前展示对象、范围和后果 | 明确确认后执行 |

设计与验收清单

  1. 业务对象和用户语言是否明确?
  2. 状态、行动和限制是否就近呈现?
  3. 结果是否由对象表现,而非只靠 Toast、跳转或刷新?
  4. 变化是否连续?异步状态是否区分进行、成功和失败?
  5. 失败后能否回滚、重试并保留输入?
  6. 是否存在隐蔽、全局或持久的模式?
  7. 必要模式是否局部、明显、短暂、可退出?
  8. 操作能否撤销或修正?必须确认时,是否说明对象、范围和后果?
  9. 是否为减少点击牺牲了理解、安全、一致性或恢复能力?

延伸阅读