API Viscosity
What are the barriers to change inherent in the API, and how much effort does a targeted developer need to expend to make a change.
這個維度描述了改變已寫代碼的容易程度,可簡稱為易改性。當用戶發(fā)現(xiàn)自己代碼運行錯誤或者發(fā)現(xiàn)選用的方法不對,修改起來是否足夠容易呢?
這里的修改通常是指那些比較小的修改,但是一個小的修改可能會產(chǎn)生“多米諾”效應:一個地方的代碼變動會導致另一個地方的代碼需要調(diào)整,接著又會導致另一處……這就要求API在設(shè)計過程中模塊劃分要合理,同時處理好它們之間的耦合程度。
修改代碼是不可避免的,這和我們思考行為有關(guān)系,我們會在大腦中勾畫一個方案,并不斷的進行調(diào)整。那些高手可直接在大腦中就想出一些中等復雜問題的解,一般人也能在大腦中直接處理一些簡單的問題,而那些大型而又復雜的問題,估計沒有人能夠直接通過大腦就能想出解決辦法。
當問題越大越復雜,API的易改性的作用就越明顯。
Consistency
Once part of an API is learned, how much of the rest of it can be inferred?
一致性也是API可用性需要考慮的,我們經(jīng)常會注意產(chǎn)品界面是否具有一致性,比如同一個網(wǎng)站的每個網(wǎng)頁的菜單樣式是否一樣,圖標風格是否一樣,字體類型、顏色、大小是否一樣等等。
Green在他的文章中也將這個因素描述為API的可猜測性,也就是說使用者了解了部分API的使用方法后,是否能很順利的猜出API其他部分的使用方法。
在地圖API中,本地搜索接口的使用方式為:
var myLoc = new BMap.LocalSearch(map); myLoc.search("百度大廈");
當用戶了解它的使用方法后,可以很輕松的使用公交導航、駕車導航等接口。
公交導航
var myTransit = new BMap.TransitRoute(map); myTransit.search("百度大廈", "中關(guān)村"); // 駕車導航 var myDrv = new BMap.DrivingRoute(map); myDrv.search("百度大廈", "中關(guān)村"); // 步行導航 var myWalk = new BMap.WalkingRoute(map); myWalk.search("百度大廈", "西二旗");
從上面可以看出,這些接口使用方法都非常類似,因此具有很高的一致性。 地圖API中也存在一些一致性較差的問題,許多接口都要求提供offset屬性,比如控件的位置偏移、標注、信息窗口的位置偏移。
當給控件添加偏移值時,采用的是下面的方法:
var ctrl = new BMap.ScaleControl({offsetX: 10, offsetY: 10});
出處:百度泛用戶體驗
責任編輯:bluehearts
上一頁 認知維度與API的可用性評估 [6] 下一頁 認知維度與API的可用性評估 [8]
◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|