需要一行代碼
經(jīng)過上面一番描述,API的工作單元可通過如下方式描述:
如果用戶編寫的代碼包含在一個本地的代碼塊中,并且代碼可以遞增式的完成,那么工作單元可描述為本地遞增式(local incremental)。
如果用戶編寫的代碼包含在多個代碼塊中,或者代碼需要多個類來交互完成,那么工作單元可描述為并行式(parallel)。
如果用戶編寫的代碼既不是本地遞增式也不是并行式,而是處于一種中間狀態(tài),那么工作單元可描述為功能式(functional)。
可以看出創(chuàng)建自定義標(biāo)注的過程是本地的遞增式的
Progressive Evaluation
To what extent can partially completed code be executed to obtain feedback on code behavior?
這個維度描述了開發(fā)者在編寫每個任務(wù)的過程中,是否很容易的停下來并檢查自己的進(jìn)度完成情況。
如果開發(fā)者在寫完每一行代碼就能夠停下來評估進(jìn)度,那么API支持單行代碼級別的評估。
如果開發(fā)者在寫完兩個或更多任務(wù)的代碼后才能評估自己某一項(xiàng)任務(wù)的進(jìn)度,那么API支持功能級別的評估。
如果開發(fā)者需要同時使用多個類,并要求類之間的狀態(tài)要保持某種一致性,這樣才能查看自己的工作進(jìn)度,那么該API支持并行模塊級別的評估。
我們還拿上面添加自定義標(biāo)注的任務(wù)來舉例,它最接近第二種情況。因?yàn)樵趧?chuàng)建icon和marker實(shí)例后,開發(fā)者并不能看到目前已經(jīng)編寫的代碼是否OK,他/她需要執(zhí)行第三個步驟,即把標(biāo)注添加到地圖上之后才能看到整體的代碼是否正確。
Premature commitment
wiki上的解釋為:
Are there strong constraints on the order with which tasks must be accomplished? Are there decisions that must be made before all the necessary information is available? Can those decisions be reversed or corrected later?
微軟將其改為如下說法:
To what extend does a developer have to make decisions before all the needed information is available?
開發(fā)者在使用API完成任務(wù)之前,有時不得不提前思考一些問題,比如使用API的哪些接口完成任務(wù),它們之間有何聯(lián)系,調(diào)用順序是怎樣的等等。那么開發(fā)者的思考代價(jià)有多大呢?
是在寫代碼之前就能輕松得出結(jié)論,還是寫了一些驗(yàn)證性的代碼之后才可以,還是整個代碼都寫得差不多了才發(fā)現(xiàn)當(dāng)初思考的方式并不正確,需要重頭再來?
如果開發(fā)者在使用API過程中經(jīng)常遇到最后一種情況,那么就認(rèn)為該API含有過多的不合理的約束(我對premature commitment的理解)。
出處:百度泛用戶體驗(yàn)
責(zé)任編輯:bluehearts
上一頁 認(rèn)知維度與API的可用性評估 [4] 下一頁 認(rèn)知維度與API的可用性評估 [6]
◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|