这个维度描述了API所提供的类、方法与那些概念上的对象是否吻合,也就是接口和问题领域的相关程度如何。
如果代码与问题领域相关程度高,那么开发者编写的过程就会轻松许多,反之,开发者就需要多花费一些时间和精力才能完成他们的工作。
举一个最简单的例子,我们打算遍历数组的每一个元素,并alert出来,那么我们可以用循环来实现:
var a = [1, 2, 3]; for (var i = 0; i < a.length; i ++){ alert(a[i]); }
而另一种可能的方法是:
var a = [1, 2, 3]; a.each(function(x){alert(x)});
或者干脆写成:
var a = [1, 2, 3]; a.each(alert);
程序员的目的是遍历数组,然而第一种方法出现的for循环结构以及相关的循环变量定义、数组长度判断等内容实际上是编程语言实现“遍历”功能所附加的一些概念。
显然这样的代码与问题领域的相关程度也比较低,而最后一种写法对于母语是英语的人来说简直就像说话一样简单。
参考资料
-
Cognitive dimensions of notations, (http://en.wikipedia.org/wiki/Cognitive_dimensions_of_notations)
- Steven Clarke & Curtis Becker, Using the Cognitive Dimensions Framework to evaluate the usability of a class library, 2003.
- Green, T. R. G. & Petre, M. (1996) Usability analysis of visual programming environments: a ‘cognitive dimensions’ framework. J. Visual Languages and Computing, 7, 131-174.
- Steven Clarke & Visual Studio Usability Group, Microsoft Corporation, Describing and evaluating API usability at Microsoft.