5.1 工具设计三原则:给谁用、多快、多安全
原则一:先定义「给谁用」
工具的三种用户(见 1.1)决定了完全不同的设计:
| 用户 | 形态 | 错配后果 |
|---|---|---|
| 自己 | 控制台、脚本 | 给自己做 UI 是浪费时间 |
| 策划/美术 | 必须有 UI + 预览 + 撤销 | 没界面的工具他们学不会 |
| CI/流程 | 命令行、无 UI、结构化输出 | 带 UI 的工具没法自动化 |
最常犯的错:给策划做了个「程序员友好」的工具——参数专业报错、无默认值、操作 5 步。策划宁愿手工也不用。
原则二:多快——交互时长就是体验
工具的体验有一个几乎线性的指标:完成一次任务要几秒、点几次。
| 时间 | 用户感知 |
|---|---|
| < 2 秒 | 「顺手」 |
| 2~10 秒 | 「能用」 |
| > 30 秒 | 「麻烦」(除非是一次性的大任务) |
| 卡住无响应 | 「坏了」 |
从互动次数看:
- 1~2 次点击完成常见任务:工具的核心路径必须是这个标准
- 预览永远先于执行:写操作给用户「先看看」的机会
- 回车/快捷键确认:键盘用户别逼他们去点鼠标
一个具体技巧:工具的默认参数应该是「当前选择的上下文」——选中 5 个怪物开工具,默认就对这 5 个生效,而不是让用户再选一遍。这一条能让工具的「体感速度」翻倍。
原则三:多安全——可逆性
编辑器工具的信任感 = 可撤销性。三个层次:
- 支持 Undo:所有资产生成都走 Transaction(见 3.1)
- 预览机制:执行前展示「将要发生什么」
- 备份/日志:批量操作写日志文件,灾难时能查
不可逆工具的下场:用过一次后大家「怕了」,从此手工。宁可慢一点也要可逆。
设计检查清单
做一个工具前过一遍:
- [ ] 主路径 1~2 次点击完成?
- [ ] 有明确默认上下文(选中=目标)?
- [ ] 写操作先预览?
- [ ] 可撤销(或可回滚)?
- [ ] 危险操作(删除/覆盖)二次确认?
- [ ] 长任务有进度反馈?
- [ ] 失败了有人话提示?
一个反例
某「批量导入配置」工具:界面 15 个参数,无默认值,无预览,执行后不可撤销,失败弹原始错误码。策划用了一次,哭了,从此邮件让对方手工改。这不是工具,这是灾难发生器。
工具的「迭代节奏」
① 最小可用版(30 分钟做出核心功能)
↓ 拉一个真实用户试用
② 观察他操作:哪步卡住、问什么问题
↓
③ 修掉阻塞点(通常是默认值/提示/交互步骤)
↓ 再给别人试
④ 稳定后加高级选项(高级区折叠,别污染主路径)
关键:别自己「完善到完美」再发布。工具的完美方向由用户的操作行为告诉你,不由程序员的想象决定。
心得:工具做到后期,最值得投入的是「默认值和上下文」而非更多功能。我们最快的工具是「一键按选中范围检查配置」——零参数、零配置、点一下出报告——成了全组每天用十几次的工具。功能多少从来不是体验的关键。
