这样做极大地满足了开发者对灵活性的要求,但也要求开发者需要掌握更多的接口和内容(DOM编程、高级JavaScript编程、API使用方法等等),同时代码的数量和复杂程度也增大了。
再来看下面的例子,有个开发者希望创建一个地图,并且在地图上添加一些控件,使地图界面看起来和百度地图(http://map.baidu.com)的界面一样,那么以下代码可以实现这个需求:
示例三
// 依次创建导航控件、缩略地图和比例尺 map.addControl(new BMap.StandardMapControl()); map.addControl(new BMap.OverviewMapControl()); map.addControl(new BMap.ScaleControl());
上面的代码通过多次添加不同的控件使该地图界面与百度地图保持一致。如果我们提供一个抽象层次更高的接口呢?可能会有如下的调用方式:
示例四
map.addTypicalContorls();
上面代码将之前的三句addControl换成了一句addTypicalContorls,添加多个控件的任务完全由addTypicalContorls方法内部去完成。
通过上面的示例我们看出,示例一和示例三的抽象程度属于中等,示例二的抽象程度低,示例四的抽象程度最高。
接口的抽象层次越高,开发者入门越容易,使用的接口数量少,但接口的灵活性低;反过来,接口的抽象层次越低,开发者需要了解的东西就越多,运用的接口数量也越多,代码写起来越复杂,但好处是接口灵活。
相信大部分开发者在刚接触一套新的API时,都喜欢通过少量的接口就能完成一些任务,这样学习成本低,开发起来起来也更轻松容易。
随着入门者逐渐使用API,他们当中就会出现一些具有一定开发经验且在灵活性上有很高要求的人,这就要求API能够提供一些层次较低、灵活程度较高的接口。 这些人也希望通过多个接口的组合来帮助自己实现功能。
在一套大型的API或者一个framework当中,需要考虑为不同的开发者提供不同抽象层次的接口,最大程度满足不同的需求。
Learning Style
Learning Style在CD中是没有的,微软将这个维度引入了进来,它的解释为:
What are the learning requirements posed by the API, and what are the learning styles available to a targeted develper.
开发者用API是来完成一些列的任务的,那么以下两种不同的完成方式确定了不同的学习风格。
如果开发者完成任务需要少量的接口,并且每个接口之间相互依赖的程度较低,那么我们说API支持一种渐进的少量的学习方式。
也就是说,开发者仅需要里了解与自己任务相关的接口,并且通过循序渐进的方式进行学习。
如果开发者完成任务需要大量的接口,并且每个接口之间关联复杂,那么我们说API需要一种由上至下或者一种结构化的学习方式。
也就是说,在用API完成任务之前,开发者需要了解API不同的接口以及它们之间的关联关系,同时可能还需要了解整个API的结构和其他一些新概念。
出处:百度泛用户体验
责任编辑:bluehearts
上一页 认知维度与API的可用性评估 [2] 下一页 认知维度与API的可用性评估 [4]
◎进入论坛网页制作、WEB标准化版块参加讨论,我还想发表评论。
|