本篇内容的作者徐宥是 AI 方向的创业者,目前在做 ai.codes,此前任职于 Fitbit (领导机器学习团队) 和 Google (广告和无人驾驶) ,华盛顿大学人工智能博士,南京大学数学学士。
工具的设计者和使用者
工具的设计者通常会预测此工具会被用来解决怎样的问题,工具的使用者则根据所面临的问题选择合适的工具。
理想情况下,设计者和使用者对问题的理解 是类似或者重叠的,完全相互理解。
现实情况下
有时候,使用者能够将工具用到远超出设计者想象的地步。
有时候,设计者是解决问题的专家,使用者则没有能够完全体验到工具的强大,需要学习。
本篇主要探讨,通过工具的设计者和使用者的视角观察工具以及讨论工具背后的设计哲学和对应的学习曲线。概括性的提出软件设计工具的这些基本分为2派:瑞士军刀和工具链。
瑞士军刀
这也是一种借鉴了现实世界中工具的类比类型的设计哲学。
我们所熟知的 photoshop、figma、airtable、spss等都属于这个流派。
瑞士军刀以方便著称,一把军刀包含了很多小部件,配合使用能够解决很多野外生存问题。
他核心有 4 大特点
- 面向特定领域,覆盖该领域大部分问题。
- 由领域专家设计,使用者需要了解该领域的基本知识才能熟练运用工具,领域模型的学习曲线陡峭。
- 但是却有统一简单优雅可控制的界面,去控制使用内部由众多小模块组成的复杂模块。
看到这个部分,想起来日本传统相机工艺的最后一次巅峰,将当时最先进的工艺,最复杂的技术内化到一个很小巧方正的金属盒子之中:拆解ConTax T3。
- 军刀工具的设计策略:常常具有强大的插件系统,以方便用户扩展现有系统
- 人的局限性,需求的复杂度。造成即使是最资深的专家,也未必能设计出一个能覆盖到所有问题的工具。这必然导致了几乎所有成熟的军刀工具,最后一定会进化出一个插件系统,用以扩展功能。
工具链
工具链没有军刀这样统一的对外接口,而是靠通用的协议来达到工具的配合使用。
这里面最经典,可能就是我们经常见到的邮件协议、RSS 协议等等,这些基于共同规则的工具设计。
来源:软件工具的设计哲学1 | 答 UNIX 痛恨者王垠
