10個(gè)對(duì)開發(fā)者非常有用的設(shè)計(jì)原則
要點(diǎn):我會(huì)盡力解釋Jakob Nielsen的10設(shè)計(jì)啟發(fā)式算法。我會(huì)用例子告訴你,作為一名開發(fā)人員,如何使你的產(chǎn)品以及你產(chǎn)品背后的代碼更加有用。
為什么我要在乎這些?
開發(fā)者也是設(shè)計(jì)師,他們只是使用不同的媒介。因此,你知道如何設(shè)計(jì)系統(tǒng)也是你的最終產(chǎn)品的一部分。
關(guān)注于把底層設(shè)計(jì)的更加有用將會(huì)幫助確定以下事情:
-
對(duì)新加入的開發(fā)人員更容易上手
-
系統(tǒng)的可維護(hù)性及更改時(shí)的簡(jiǎn)易性
-
作為這個(gè)系統(tǒng)的一名開發(fā)者,你是多么的有效率
當(dāng)我與開發(fā)者一起工作的時(shí)候發(fā)現(xiàn),這些觀念已經(jīng)在程序員之中存在了–只是他們還沒(méi)有把這個(gè)表達(dá)給設(shè)計(jì)師。還有很多需要去做,但是基礎(chǔ)已經(jīng)存在了,這難道不是好消息嗎?
在我的例子中并沒(méi)有任何實(shí)際的代碼,因?yàn)槲矣X(jué)得人們對(duì)于編寫任何軟件的正確方式都太敏感了。
像設(shè)計(jì)師一樣,程序員喜歡運(yùn)用他們的創(chuàng)造力來(lái)解決復(fù)雜的問(wèn)題。而我寧愿你考慮一下下面關(guān)于設(shè)計(jì)系統(tǒng)的規(guī)則,而不是按照一組嚴(yán)格的規(guī)定來(lái)說(shuō)“這是解決XX問(wèn)題***的方法”。
設(shè)計(jì)啟發(fā)式是什么?
啟發(fā)式只是通過(guò)你的經(jīng)驗(yàn)中學(xué)習(xí)。它是用于查找在用戶界面的易用性問(wèn)題,使得它們可以參加到作為迭代設(shè)計(jì)過(guò)程的一部分的方法。
我們得到3-5個(gè)啟發(fā)式設(shè)計(jì)的專家來(lái)使用我們的產(chǎn)品,并判斷它是否符合最基本的可用性規(guī)則,即“10設(shè)計(jì)啟發(fā)式”合規(guī),這是啟發(fā)式的簡(jiǎn)化。
下面讓我們開始吧。
1. 系統(tǒng)狀態(tài)的可視性
曾經(jīng)上傳圖像到一個(gè)網(wǎng)站?比如說(shuō)一個(gè)社交網(wǎng)絡(luò)的頭像?
主要的原則是要使你始終可以了解上傳的狀態(tài)。上面的例子只是告訴你上傳的狀態(tài)。而看到它的進(jìn)步使用戶更加舒服,你不覺(jué)得嗎?
10-design-heuristics-1
2. 系統(tǒng)和現(xiàn)實(shí)世界之間的匹配
當(dāng)寫文檔或命名一個(gè)組成部分,始終嘗試使用熟悉的術(shù)語(yǔ)。了解目標(biāo)用戶是誰(shuí),然后使用他們熟悉的單詞、短語(yǔ)和概念。
3. 用戶控制和自由
10-design-heuristics-2
系統(tǒng)應(yīng)該允許你自由去探索其內(nèi)容,但是以一種更加負(fù)責(zé)的方式,應(yīng)該讓你可以從你可能犯的錯(cuò)誤中進(jìn)行恢復(fù)。比如說(shuō)支持“撤銷”與“重做”。
4. 一致性和標(biāo)準(zhǔn)
蘋果和微軟都對(duì)“確定”和“取消”按鈕的順序有不同的意見。哪個(gè)更好?
都不好或者都好?當(dāng)然,這并不重要,重要的是你要確保所有用戶交互系統(tǒng)的一致性。
10-design-heuristics-3
要做到這一點(diǎn),你就不應(yīng)該讓你的用戶困惑,為什么不一樣的單詞、不一樣的環(huán)境或者操作確得到相同的結(jié)果。
5. 錯(cuò)誤的預(yù)防
在錯(cuò)誤可能發(fā)生的***個(gè)位置阻止錯(cuò)誤是非常重要的。
當(dāng)我們一開始的時(shí)候,就有QA人員來(lái)尋找產(chǎn)品中的缺陷以保證產(chǎn)品質(zhì)量。然后把他們放到生產(chǎn)線上,讓他們指出如何在***道工序開始就做出沒(méi)有缺陷的產(chǎn)品。你會(huì)驚訝于這樣的效率是多么的高,當(dāng)你做的東西中的缺陷在***時(shí)間被發(fā)現(xiàn)而不是到***才被發(fā)現(xiàn)。
— Mary Poppendieck
6. 可識(shí)別性
顯示出提升用戶可用性的標(biāo)識(shí),這是另一個(gè)有幫助的內(nèi)容。
CLI(命令行接口) 是一個(gè)完全無(wú)視這一原則的***的例子,通過(guò)這樣,它演示了優(yōu)雅(它用靈活性與效率來(lái)彌補(bǔ)了它所缺少的)。
7. 靈活性和使用效率
在你的系統(tǒng)上提供一個(gè)潛在的、隱藏的層,來(lái)幫助有經(jīng)驗(yàn)的用戶通過(guò)“噪聲”,變得更加有效率。
Cli 就是這樣一個(gè)“隱藏”界面的功能是可以多么強(qiáng)大的例子(我們甚至可以選擇擴(kuò)展)。
8. 簡(jiǎn)潔
最初被列為“審美和簡(jiǎn)約設(shè)計(jì)”。這一原理是關(guān)于提高信噪比的。
你提供給用戶的所有數(shù)據(jù)都要有一定的約束–是否有臃腫的HTTP請(qǐng)求的占用帶寬、充滿缺陷的API、以及需要太多請(qǐng)求的交互界面。
盡量用最小的輸入,獲得***的產(chǎn)出。
9. 幫助用戶識(shí)別、診斷和從錯(cuò)誤中恢復(fù)
錯(cuò)誤消息應(yīng)該用平實(shí)的語(yǔ)言表達(dá)(沒(méi)有代碼),精確顯示問(wèn)題,建設(shè)性地提出一個(gè)解決方案。對(duì)用戶是有用的。并且提供一個(gè)解決方案。
就像 這樣。
10. 幫助和文檔
在設(shè)計(jì)原則的列表中看到這一項(xiàng),我和你一樣感到驚訝。
即便沒(méi)有文檔也可以使用的系統(tǒng),***也還是要提供幫助和文檔。任何此類信息都應(yīng)該易于搜索,關(guān)注用戶的任務(wù),列出具體的進(jìn)行步驟,并切不應(yīng)該太大。
總結(jié)
我希望這對(duì)你是有幫助的。如果你有任何問(wèn)題或看法,請(qǐng)留言。
來(lái)源:http://info.9iphp.com/the-10-design-principles-for-developers/