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