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