标题：细节决定交互设计的成败
图书信息
作　者：张亮 编著  细节决定交互设计的成败
出 版 社： 电子工业出版社
出版时间： 2009-3-1
页　数：412页
开　本： 16开
分类： 图书>> 计算机>>交互设计
定价：￥49.00元
宣传语
迅速提升用户体验的交互设计之道
资深交互设计师的呕心沥血之作
内 容 简 介
《细节决定交互设计的成败》是一本非常实用的有关软件界面的交互设计和可用性设计方面知识的书籍，通过采用一问一答的形式，你将会有针对性地学习到一些能够很快应用在自己软件开发工作中的细节知识和诀窍。例如，如何减轻用户的等待感，如何预防和减少用户的使用错误等。
另外，你会发现阅读《细节决定交互设计的成败》时会非常轻松和愉悦；这是由于《细节决定交互设计的成败》写作上的两个特点：第一，采用较多日常生活中的例子来做比喻；第二，大量列举了一些实际软件的界面示例和屏幕截图。这些手法都使得读者能够更快、更好地提高交互设计的水平。
要想快速提高软件界面的可用性和用户使用体验，并不一定需要全面和系统地学习人机交互理论或认知心理学等的知识。实际上，通过掌握一些对于这些方面的常见问题的解决方法，以及注意细节的设计，你就能够快速而有效地实现以上目标。 [1]
前 言
做饭、吃药、写书和产品设计
例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