《細節決定互動設計的成敗》是2009年電子工業出版社出版的圖書,作者是張亮。本書是一本非常實用的有關軟體界面的互動設計和可用性設計方面知識的書籍,通過採用一問一答的形式使讀者增加印象。
基本介紹
- 書名:細節決定互動設計的成敗
- 作者:張亮
- 類別:圖書>> 計算機>>互動設計
- 頁數:412頁
- 定價:¥49.00
- 出版社:電子工業出版社
- 出版時間:2009-3-1
- 開本:16開
宣傳語,內容簡介,前 言,目 錄,
宣傳語
迅速提升用戶體驗的互動設計之道
資深互動設計師的嘔心瀝血之作
內容簡介
《細節決定互動設計的成敗》本書寫作上的兩個特點:第一,採用較多日常生活中的例子來做比喻;第二,大量列舉了一些實際軟體的界面示例和螢幕截圖。這些手法都使得讀者能夠更快、更好地提高互動設計的水平。本書適合於軟體開發、測試人員及管理人員,計算機軟體專業的師生,以及對於互動設計、可用性設計或用戶體驗設計感興趣的其他領域的設計人員閱讀。
《細節決定互動設計的成敗》是一本非常實用的有關軟體界面的互動設計和可用性設計方面知識的書籍,通過採用一問一答的形式,你將會有針對性地學習到一些能夠很快套用在自己軟體開發工作中的細節知識和訣竅。例如,如何減輕用戶的等待感,如何預防和減少用戶的使用錯誤等。
另外,你會發現閱讀《細節決定互動設計的成敗》時會非常輕鬆和愉悅;這是由於《細節決定互動設計的成敗》寫作上的兩個特點:第一,採用較多日常生活中的例子來做比喻;第二,大量列舉了一些實際軟體的界面示例和螢幕截圖。這些手法都使得讀者能夠更快、更好地提高互動設計的水平。
要想快速提高軟體界面的可用性和用戶使用體驗,並不一定需要全面和系統地學習人機互動理論或認知心理學等的知識。實際上,通過掌握一些對於這些方面的常見問題的解決方法,以及注意細節的設計,你就能夠快速而有效地實現以上目標。
前 言
做飯、吃藥、寫書和產品設計
例1,為什麼很多人都知道油條最沒營養但仍然非常喜歡吃?原因很簡單,他們覺得油條太香了。為什麼很多人知道用蒸煮的方法做菜能最大限度地保住營養、但還是喜歡吃炒的菜呢?原因也一樣,總感覺炒出來的菜香。對於飯菜來說,讓人吃飽並且吃得有營養是它的基本功能和作用;然而,為了達到這個目的,飯菜必須做得讓人喜歡吃。如果飯菜做得讓人看起來沒有任何食慾,聞上去沒有任何香味,吃起來也沒有什麼味道,那么飯菜的營養再高也沒有用,因為人們首先根本不想去吃。
例2,俗話說,良藥苦口利於病。然而,為什麼不能把良藥做得更爽口些、讓我們吃的時候不再感到那么難以下咽呢?
例3,在使用傳真機時,你知道該把要傳真的紙張的哪面朝上放置嗎?在使用複印機時,你知道如何把身份證的正反面複印在同一張紙的同一面上嗎?
例4,如果你正閱讀到這裡,並饒有興趣,那么你一定是個喜歡閱讀、渴望獲得知識的人。那么,對於這類知識性的書籍來說,你是希望它寫得有趣、易懂、非常吸引人呢?還是希望它寫得晦澀難懂、只是在那裡乾巴巴地說教呢?答案很顯然,可讀性差的書會導致人們根本沒有耐心和興趣把它讀完,哪裡還談得上獲取其中的知識呢?
聰明的讀者是不是已經從上面的例子中產生了某種感悟呢?實際上,包括飯菜、藥、書以及各種電子產品在內的我們身邊所有的產品都具有這樣的特點:即它們最基本的價值是其功能性或作用,然而為了更好地發揮其功能和作用、讓人們更好地得到它們所帶來的價值,有一個很重要的前提是,人們首先要能很好地使用這些產品。用一個專業一點的術語來講,產品要具有好的可用性。不幸的是,我們的身邊到處充斥著這樣的只顧追求功能性、而不管用戶能否很好地使用它們的產品。
本書的目的
如果你是一個產品設計人員,你是不是希望自己的產品不僅具有豐富的功能、而且這些功能都能被用戶很好地使用呢?這正是本書的主要目的。通過對大量的產品界面進行分析,本書總結了一些具有普遍指導意義的、針對常見界面設計問題的策略或方法。例如,哪些功能應當被自動化?如何在有限的界面上顯示更多的內容?如何吸引用戶的注意力?如何防止用戶在使用產品時出現操作錯誤?界面的回響時間多快是合適的呢?如何使得產品能夠讓用戶一看就懂、一學就會?如何使得用戶只用較少的操作就能完成大量的任務?如何減少用戶的等待感?等等。
儘管本書主要側重於軟體產品的界面設計,不過正如你將從書中所看到的那樣,其實所有的產品在可用性方面的設計原理和方法都是類似的,因此你也可以把這些知識套用在其他的產品設計中,例如家電產品、汽車、日用物品,甚至是一些服務的設計。
本書的特點
趣味性
在寫作手法上,本書力爭通過自身來很好地體現書中所要闡述的原理,即要寫得讓讀者讀起來覺得很有興趣,從而讓讀者更好地掌握這些知識。具體來說,從我個人的體驗來看,具體的例子是幫助人們掌握一些抽象知識的最好途徑。在很多的時候,我是通過記住例子的方法來記住一些知識的。因此,在本書的寫作上,我也大量地採取了舉例子的方法:不僅僅列舉了正面的例子,也列舉了反面的例子;不僅僅列舉了軟體產品中的例子,也列舉了我們日常生活中一些常見的物品或生活體驗的例子,就像前言開頭部分所舉的那些例子一樣。實際上,這也是本書在第2章所論述的界面比擬原理的最好體現,即利用人們已經掌握的知識來幫助他們掌握新的知識。通過這種方法,我希望能增加本書的可讀性,幫助讀者更好地理解和記憶。
實用性
和其他講述用戶界面設計方面的書相比,本書的最大特點在於寫作視角的不同。正如在目錄部分所看到的,本書是從讀者在界面設計中可能會遇到的問題的角度出發、而不是從有關的界面設計原則或原理來組織的。這樣,本書不是試圖向讀者灌輸一些知識或理論,而是著眼於幫助讀者去解決他們實際工作中的問題,這就使得本書具有很強的實用性。
索引性
你將發現,本書的目錄就是一個很好的索引,每當你在工作中遇到有關界面設計方面的問題時,你都可以到這個索引中來查找,看看有哪一條能夠幫助你解決問題。
有了以上的寫作手法和寫作視角的特點,本書最主要的目標讀者將是普通的軟體設計、開發及測試人員,或者說那些以前對於用戶界面設計沒有任何了解、但很想快速地提高產品界面可用性的人員。隨著軟體可用性受到越來越大的關注,有關可用性設計或人機互動設計方面的知識正在日益成為軟體工程師的必備技能。而對於軟體開發企業來講,通過普遍提升開發人員在這方面的知識水平,企業也將能夠設計出更加好用的產品。當然,其他產品領域的設計人員也能從書中得到一些有益的啟發。
本書的內容
本書由五篇共24章組成,第1篇為易學易用篇,包括第1~6章,討論如何設計一個容易學習和使用的界面。第2篇為效率篇,包括第7~第10章,主要介紹一些設計技巧,它們能使得用戶通過很少的輸入或操作就能夠迅速而準確地完成大量的任務,從而提高他們的使用效率。第3篇為錯誤處理篇,包括第11~12章,介紹如何防止和減少用戶在使用中出現錯誤以及如何設計出錯信息。第4篇為互動細節篇,包括第13~19章,主要介紹了一些和人類認知心理相關的界面設計需要注意的細微之處。第5篇為方法篇,包括第20~24章,主要介紹了一些用戶界面方面的設計過程和方法。
支持和互動
雖然筆者花費了大量的時間對書稿進行了反覆的修改和推敲,但限於時間和水平,仍難免有失誤或錯誤。特別是本書,很多內容都是源於筆者的實踐和體會,一定有很多值得商榷的地方。為了使本書能更好地服務於讀者,請您將關於本書的任何問題或錯誤信息發至以下的連結:
在這裡,你不僅可以就本書中的一些內容進行評論或討論,而且還可以閱讀到筆者最新發表的一些有關用戶界面設計的文章。
張 亮
2008年4月於北京
目 錄
第1篇 易學易用篇
第1章 為什麼要提高軟體的易學性和易用性 2
第2章 如何使界面讓用戶“一看就懂” 5
2.1 採用比擬手法 5
2.1.1 比擬手法使用實例 6
2.1.2 使用比擬手法的局限性 11
2.1.3 使用比擬手法時應注意的問題 12
2.1.4 比擬手法小結 13
2.2 模型匹配原則 14
2.2.1 心理模型、實現模型和系統模型 14
2.2.2 軟體產品中的系統模型和心理模型的匹配問題 16
2.2.3 從程式語言的發展來理解系統模型和心理模型的匹配原則 18
2.3 利用預設用途設計出能夠表明其用法的界面 21
2.3.1 如何讓用戶知道當前可以用鍵盤輸入文字 23
2.3.2 如何讓用戶知道某個區域是可以用滑鼠單擊的 23
2.3.3 如何讓用戶知道某個區域可以被拖拽 24
2.3.4 如何讓用戶看出應當採用滑鼠雙擊操作 27
2.3.5 如何讓用戶看出應當使用滑鼠滾輪操作 28
2.3.6 被動式預設用途 29
2.3.7 主動式預設用途表示法和被動式預設用途表示法的比較 32
2.4 一致性 35
2.5 自然匹配 38
2.5.1 操作控制項的位置和它的作用之間的對應關係 39
2.5.2 操作控制項的形狀和它的作用之間的對應關係 42
2.5.3 操作控制項的操作方式和它的作用之間的對應關係 44
2.5.4 操作空間的維度和結果狀態改變的維度不符 47
2.6 關於比擬、預設用途以及一致性設計的深入討論 51
第3章 如何使得軟體“一學就會” 54
3.1 直接操控 55
3.2 如何幫助用戶找到功能在哪裡 63
3.2.1 就近原則 63
3.2.2 以對稱的方法進行對稱的操作 65
3.2.3 對功能進行恰當的分類和組織 69
3.2.4 讓用戶能夠從界面上看到軟體所提供的功能 71
第4章 如何幫助用戶探索和嘗試 79
4.1 把所有的功能和操作儘可能列在選單系統中 80
4.2 讓用戶在執行某個操作前知道它的效果 80
4.3 讓用戶可以撤銷動作 83
4.4 讓用戶可以把狀態恢復到初始值 84
4.5 在執行具有破壞性的操作前要求用戶確認 85
第5章 如何設計幫助系統 88
5.1 幫助系統的必要性 88
5.2 用戶會在哪些情況下需要幫助信息 89
5.3 幫助系統應當提供哪些內容 91
5.3.1 入門指南或學習指南 91
5.3.2 操作指南或使用指南 93
5.3.3 故障排除 102
5.3.4 參考手冊 107
5.3.5 術語解釋 108
5.3.6 幫助系統中幾個部分的對比 110
5.4 幫助系統中表達方式的選擇 111
5.5 採用具體的例子幫助用戶理解 112
5.6 幫助介質的選擇:電子版還是書籍 113
第6章 如何設計一個優秀的嚮導式界面(Wizard) 116
6.1 儘可能展示出用戶當前在整個嚮導過程中的位置 117
6.2 嚮導式界面的步驟個數以及每個步驟信息量的設定 119
6.3 避免顯示無用的圖片 120
6.4 在嚮導結束前,讓用戶確認輸入的內容 121
第2篇 效率篇
第7章 如何幫助用戶高效率地完成任務 126
7.1 支持批處理操作 127
7.2 支持宏命令操作 131
7.3 支持命令行方式 134
7.4 增加一個抽象層 135
7.5 提高常用操作的效率 137
7.6 賦予用戶製造專用工具的能力 139
第8章 如何使得滑鼠操作更高效 146
8.1 Fitts定律 146
8 2 Fitts定律在軟體界面設計中的套用 147
8.2.1 縮短當前位置到目標區域的距離 148
8.2.2 增大目標大小以縮短定位時間 150
8.3 Fitts定律在Web頁面設計中的套用 153
第9章 哪些功能應當由軟體自動執行 156
9.1 防止用戶忘記做某事 156
9.2 免去用戶必須或很可能要執行的操作 159
9.3 幫助用戶執行重複性和機械性的操作,提高用戶的使用效率 161
9.4 免除用戶不會使用的操作 164
9.5 自適應 165
第10章 如何使界面適套用戶的使用習慣 167
10.1 被動調整策略 168
10.2 主動自適應調整策略 169
10.3 主動自適應調整策略的套用範圍 171
10.4 主動自適應調整策略的實現 172
10.4.1 用戶識別 172
10.4.2 蒐集相關數據並據此分析用戶的使用特點 172
10.4.3 對界面進行調整 173
10.5 主動自適應調整策略的優缺點 173
10.6 主動自適應調整策略的最新發展方向 174
10.6.1 根據其他用戶的使用行為來主動地進行自適應調整 174
10.6.2 介於主動自適應和被動調整之間的混合策略 175
第3篇 錯誤處理篇
第11章 如何減少用戶在使用軟體時出現錯誤 178
11.1 讓用戶能有效地看出或知道如何正確操作 179
11.2 採用限制因素防止用戶出現錯誤 180
11.3 減少混淆 183
11.4 利用反饋來讓用戶看到操作是否正確 185
11.5 用某種方式提醒用戶有可能出錯 189
11.6 降低靈活性 190
11.7 向用戶提供工具,讓他們自己設定限制因素以防止誤操作 193
11.8 克服“模式”現象的影響 195
11.8.1 MSN的登錄界面的設計 195
11.8.2 什麼是界面中的模式現象 197
11.8.3 有害模式和無害模式 198
11.8.4 模式產生的根源及在產品設計中如何處理 201
第12章 如何設計出錯信息 204
12.1 不要只告訴用戶操作無法完成或操作失敗 205
12.2 不要僅僅給出出錯代碼,還應當給出該錯誤
12.2 代碼的含義 206
12.3 不要在出錯信息中使用用戶無法理解的術語 206
12.4 錯誤原因要儘可能明確 207
12.5 錯誤信息要具有建設性,要讓用戶看出怎樣才是正確的 209
12.6 不要給出誤導性的出錯信息 213
12.7 向用戶提出解決問題的建議 215
第4篇 互動細節篇
第13章 如何減少用戶的等待感 220
13.1 使用某種反饋機制來讓用戶看到操作進行的進度和狀態 220
13.2 讓用戶以漸進方式得到處理結果 223
13.3 讓用戶在等待的過程中有事可做,分散其注意力 225
13.4 減低用戶的期望值 226
第14章 如何克服短時記憶局限性對於界面的影響 229
14.1 分塊 231
14.2 由軟體傳送信息,消除用戶記憶的必要性 234
14.3 讓用戶可以一直在螢幕上看到不容易記住的信息 238
第15章 如何減少人們在使用軟體時的長時記憶負擔 241
15.1 將需要記憶的信息在界面上顯示出來,讓用戶看到 242
15.2 用識別代替記憶 243
15.3 利用用戶已掌握的知識,不要求用戶記憶新的東西 246
15.4 讓計算機幫助用戶找到那些難以記憶的內容 246
15.5 讓用戶自己幫助自己記憶 249
15.6 利用規律或規則來減少所需記憶的信息 250
第16章 如何充分利用螢幕空間來顯示更多內容 253
16.1 自動分時復用,輪流或滾動顯示 255
16.2 僅在滑鼠懸停時顯示視窗 256
16.3 利用下拉式控制項減少對螢幕的占用 257
16.4 抽屜式界面 260
16.5 標籤式界面 261
16.6 去掉毫無意義的圖片 265
16.7 全螢幕幕顯示 267
第17章 如何吸引用戶的注意力 269
17.1 什麼情況下需要吸引用戶的注意力 270
17.2 使用視覺手段吸引用戶的注意力 271
17.2.1 顏色 271
17.2.2 字型 273
17.2.3 顯示位置 274
17.2.4 閃爍和動畫 276
17.3 採用聲音吸引用戶的注意力 279
17.4 採用振動方式來吸引用戶的注意力 280
第18章 回響時間多長才是合適的 282
18.1 用戶的期望 282
18.1.1 用戶對於產品的熟悉程度 283
18.1.2 影響忍耐性的其他用戶特點 284
18.1.3 操作的頻繁程度和重複性 284
18.2 產品使用環境的要求 285
18.3 軟體的使用性質 286
18.4 用戶是否等待某個操作的結果來繼續進行其他事情 287
18.5 回響時間對於用戶行為的影響 288
18.6 回響時間的定量分析 289
18.6.1 0.1秒 290
18.6.2 1秒 291
18.6.3 10秒 292
18.6.4 回響速度越快越好嗎 297
第19章 如何更好和更有效地向用戶輸出信息 300
19.1 差異化 303
19.2 相對表示法 307
19.2.1 數量的相對表示法 307
19.2.2 時間的相對表示法 308
19.2.3 空間的相對表示法 311
19.3 形象思維與邏輯思維 312
19.4 根據信息的內在關係,選擇恰當的組織形式 316
19.5 對信息進行適當的排序以方便用戶查找 320
19.6 從多個角度進行顯示 325
第5篇 方法篇
第20章 用戶自身及其使用特點如何對界面設計產生影響 330
20.1 用戶在生理和心理上的特點 331
20.1.1 視力 332
20.1.2 閱讀和理解能力 333
20.1.3 手眼協調以及肌肉控制的精確度 333
20.1.4 辨色能力 334
20.1.5 性格特徵和心理偏好 335
20.2 用戶對於產品使用的熟練程度 336
20.2.1 大部分用戶是初級用戶 336
20.2.2 大部分用戶是初級到中級用戶 336
20.2.3 大部分用戶是中級到高級用戶 337
20.3 用戶的領域知識 338
20.4 用戶對於計算機操作的一般性知識 339
20.5 用戶使用的頻率 340
20.6 用戶在進行輸入操作時,輸入信息的真正來源在哪裡 340
20.7 用戶使用軟體或某個操作的目的是什麼 341
20.8 用戶在操作軟體時的環境以及輸入輸出設備方面的限制因素 343
第21章 如何進行用戶研究 349
21.1 用戶訪談 350
21.2 問卷調查 350
21.3 觀察用戶 351
21.4 體驗式研究 353
21.5 從技術支持人員那裡獲取用戶信息 354
21.6 網上用戶論壇 355
21.7 收集和研究用戶的使用日誌 355
第22章 如何製作原型 357
22.1 原型設計的作用和目的 358
22.1.1 交流設計方案 358
22.1.2 更早更有效地讓用戶參與進來 359
22.1.3 原型是對設計方案進行評估和改進的基礎 359
22.1.4 降低開發成本 359
22.2 如何製作原型 359
22.2.1 紙面原型 360
22.2.2 用軟體工具繪製靜態的界面表示 361
22.2.3 使用快速套用開發工具來製作原型 361
22.2.4 使用Web套用開發工具來製作原型 362
22.2.5 基於Flash技術的原型 363
22.3 原型的保真度 363
22.4 如何得到一個好的最初原型 365
22.5 何時停止原型的改進與疊代過程 366
22.6 原型的局限性 366
第23章 如何進行可用性評估 368
23.1 認知走查(Cognitive Walkthrough) 370
23.1.1 認知走查前的準備工作 371
23.1.2 怎樣在認知走查中發現可用性問題 371
23.1.3 認知走查法的局限性 375
23.2 啟發式評估 375
23.3 可用性測試 376
23.3.1 招募測試用戶 377
23.3.2 選擇測試地點和記錄方法 377
23.3.3 測試前的準備 377
23.3.4 測試過程 378
23.3.5 測試結束時的活動 378
23.3.6 事後的研究和分析 378
第24章 如何進行創新性的界面設計 380
24.1 巧妙地利用原先被浪費的空間和時間 380
24.2 解決矛盾的需求 383
24.3 使螢幕上原本只用於輸出的區域也能接受輸入,增強互動性 385
24.4 組合 385
24.5 通過去除某些維度上的功能來產生新的產品或使用方法 387
24.6 從非軟體的產品或系統中尋找靈感 388
參考文獻 389