写给程序员的UI设计书 (译) (六)

申明:本文及以后一系列有关都将《User Interface Design for Programmers》持续转载自tobybateer 的博客:http://tobybateer.blog.163.com/

感谢tobybateer的辛勤付出,给我带来了如此优秀的学习文档。

第六章:一致性及其它小精灵

微软Offece程序的主要成员——Word和Excel都是由微软自己从头开发的。其它一些程序则是从别的公司借鉴而来,例如FrontPage(从Vermeer公司借鉴而来,该公司由Charles H. Ferguson和Randy Forgaard于1994年成立,公司开发的唯一一款软件就是FrontPage——译者注)和Visio(从Visio借鉴。Visio,一家位于西雅图的公司,后来被微软并购——译者注)。你知道FrontPage和Visio的共同点么?它们最初的设计和感觉就与微软Offece软件相似。

(这两个公司)决定模仿微软的UI绝不是说想被微软选中或者被其收购。实际上,FrontPage的设计者Charles Ferguson从来都毫不掩饰他对微软的鄙视。他一直不停地乞求司法部门对雷德蒙德的那帮家伙(微软公司总部位于雷德蒙德,这儿暗指微软的员工——译者注)做点儿什么(直到他把公司卖给微软,然后他所处的位置就愈发复杂)。事实上,行之有效是Vermeer和Visio模仿Office UI的主要原因,因为这样会更简单、更方便而不用一切都从零开始。

微软的一名程序员小组长Mike Mathieu从Vermeer的网站下载并试用FrontPage时,发现它几乎与Word的工作方式相同。程序的工作方式与他所期待的几乎一致,这样就更容易使用,程序模式与用户模式相符合。当他尝试去做点儿事情时,它们确实(如他所期待地那样)工作了。同时这种使用上的方便性令他高兴,而且对程序从一开始就产生了好印象。

如今,如果微软从一开始就对某个程序有好感的话,他们会出价150万美元左右购买(2001年时的水平——译者注)。你的目标可能没这么多,你只希望客户对程序有个好印象并且愿意出价39美元。但是核心是一样的:一致性使用户更简单,同时反过来也会产生好的印象,结果使你赚了更多的钱。

具体多少的一致性会帮助人们学习和使用更多的软件真是无法估量。在GUI诞生前,每个程序都会从头设计一遍UI。即便是一个简单的、每个程序都必须有的、类似于“退出”这样的操作,都完全不一致。在那个年代,人们需要记住好几种常用软件的退出命令,这样他们才能退出和运行程序。Emacs对:q!有特殊偏好(除此之外别无它物),而这条命令在vi里边会产生错误,因为vi用户记住的是C-x C-c(Emacs甚至有自己的方式来表达控制符)。在DOS里,除非你使用那些学究的塑料键盘,上边印刷了模板提醒你Alt + Ctrl + F3是用来干什么的,否则你几乎连WordPerfect都无法使用。这让我远离那种环境,因而可以使用更智能的类似于“行编辑”的东东。

类似于默认输入行为(覆盖或者插入)这种细小的不一致都会令你抓狂。在Windows里,我习惯于使用Ctrl + z来撤销,当我使用Emacs我总是错误地最小化窗口(Ctrl + z)。(这是个玩笑,Emacs将Ctrl + z解释为最小化的真正原因是与令人恐怖的用户界面csh——UNIX的C语言shell界面,“保持一致”。)就是这种最不起眼的小挫折累积成为一种不愉快的感觉。

看另一个更小的例子,Pico和Emacs都使用Ctrl + k来删除行,但是每当我使用Pico的时候,总感觉有点点异样,因为它常常破坏我的文档。我确信你还可以举出一大堆例子。

微软Windows诞生前的早期Macintosh时代,果粉总喜欢逢人就说“花同样的功夫,苹果用户可以比DOS用户学会更多的软件”。我记不清具体的数字了,但是我相信,平均DOS用户学习一到两个程序的时间够苹果用户学习一打程序。因为所有的苹果程序工作方式都很类似,学起新东西很快,所以苹果用户可以学习大量的软件。

一致性是优秀UI设计的基础,但是它仅仅只是“程序模式与用户模式相匹配”这条公里的必然推论,因为用户模式通常反映了用户观察其它应用程序工作的方式。如果用户学过双击文本来选择单词,那么当你向他们展示一个从未使用的程序,他们会猜测双击代表选择单词。现在程序最好能够在双击的时候选择单词(而不是与之相对的,比如说在词典中查找该单词),否则你会收到一个使用性问题的投诉。

既然一致性如此有利,为什么我还在浪费你我的时间来吹捧它?实际上令人不爽的是,还有一股黑暗力量与一致性相抗衡。这股力量就是设计者和程序员本身的创造性。

我讨厌成为对你说“不要有创造性”的人,但不幸的是,为了让用户界面简单易用,你不得不将创造性放到一边儿。大多数UI决策中,在打草稿之前,你必须看一看其它主流软件是怎么做的,然后尽可能相似地去模仿。如果你想写某种文字编辑软件,它看起来最好很像微软的Word,也使用了常用的菜单项。你的某些用户习惯使用Ctrl + S保存文档,其他人习惯使用Alt + F,S保存,同时还有人习惯Alt,F,S(松开Alt键)。另一组人将会在窗口的左上角寻找软盘图标然后点击它。最好这四种方式都能工作,否则你的用户将会得到一些他们不想要的东西。如果你认为Ctrl + S应该用来执行拼写检查,你将会惹恼许多试图保存工作的用户。

当管理者自豪的认为他们与微软的做事风格截然不同时,往往会收到一大堆抱怨。他们会吹嘘“不能因为微软是这么做的,就代表它是对的”,同时会设计一种与人们习惯完全不同的用户界面。在你歌颂“不能因为微软是这么做的,就代表它是对的”这句话之前,请考虑下面两件事情。

第一,即便它不是对的,但是微软在主流的程序例如Word、Excel、Windows或者IE中这么做,使得数百万人认为这是对的,或者至少是一种标准。用户会认为你的程序也以同样的方式工作。即便你认为Alt + Left并不是表达“后退”的一种好的快捷方式,但确实有数百万人会尝试使用Alt + Left来回退,如果你认为比尔盖茨只是漫画蓝精灵中扭曲是非的坏蛋格格巫(Gargamel)而拒绝使用这些通用规则,那么你的程序只会令自己沾沾自喜、自我陶醉,用户根本不会因此感谢你。

第二,不要坚定地认为它不正确。微软在使用性测试上花的钱比你多得多,他们根据数百万通售后服务电话得出了详细的统计数据,因而他们有很大的机会来了解大多数人所期待的软件工作方式。

设计一款好的软件并配上易用的界面,同时谢谢你,请把你的信仰暂时放到一边。你不一定要借鉴微软的。如果你设计一个在线书店,你真的应该使你的网站至少在用法上与Amazon.com一致。Amazon.com会把你的购物车保留90天。你可能觉得你更聪明,设计出的程序会在两小时后清空购物车。如果你这么做,可能会有一位之前使用Amazon.com的用户在你的网站选购了商品,然后两周后回来时希望它仍然还在。当购物车被清空的时候,你同时也失去了一位客户。

如果你为专业图形用户制作一款高端照片编辑器,我肯定90%的用户会知道Adobe Photoshop,所以你最好看一看Photoshop中与你程序功能交叉的部分。如果你不这么干的话,即便你认为你的程序比Photoshop使用起来更简单,人们也会觉得更加困难,因为这并不以他们期待的方式工作。

还有一种流行趋势——重新改造Windows提供的通用控件。(不要在我面前提起Netscape 6。)有一段时间你甚至可以辨认出哪些程序是由Borland C++编译器编译出来的,因为它们会使用肥大的OK按钮和巨大的绿色复选框。但这并没有Kai’s Photo Soap那样糟糕。

看看图6-1。嗯,它看起来非常漂亮,但是仔细看一看退出对话框。对我而言,有一条斜杠的O(事实上代表“no”)使我想起了“OK”。Windows的标准是将OK键放到左边,所以我常常点错按钮。像其他人所做的那样,抛弃“确定”和“取消”这种文字,以好玩的图标取而代之所带来的唯一好处就是向人们展示你是多么富有创造力。如果人们因为Kai的创造力而犯错,好吧,那就是他们假装自己是艺术家所付出的代价。(这个“对话框”的另一个问题就是它并没有标准的标题栏,无法在屏幕上来回拖动。如果对话框将回答其问题的答案遮住了,你就没这么好的运气咯。)

写给程序员的UI设计书 (译) (六) - tobybateer - tobybateer 的博客
图6-1 Kai’s Photo Soap以不同的方式处理问题

至此,你应该从一个外表华丽,看起来很酷的对话框中学到不少教训了。类似于Kai这种优秀的图形设计确实很受欢迎,也能吸引许多人。不过技巧是在不打破规则的前提下这么做。你可以稍微改一改对话框的外观,但是不要破坏功能。

当Juno的第一个版本诞生时,它有一个标准的弹出对话框让你输入用户名和密码。输入用户名之后,你很可能会按下Tab键来跳转到密码输入框以键入密码。

现在,Juno的一个很搓的经理拥有更多的Unix使用经验(相比较Windows而言)。他习惯输入用户名,然后按下空格键(而不是Tab键)来跳转到密码输入框。当你面向没有经验的Windows用户写程序时,一个UNIX程序员恐怕不是典型用户的理想代表。但是这位经理非常固执,认为回车键应该用来跳转而不是完成Windows里边“确认”按钮所做的事儿。他说,“不能因为微软是这么做的,就代表它是对的”。

于是,程序员花了大量的时间来完成这个复杂的对话框,游走于Windows的默认行为周围。(不一致相比较简单地只做该做的事儿总是会耗费更多的工时。)当从16位Windows向32位Windows迁移时,这些代码的维护工作就是一个噩梦。它并不按照人们期待的方式工作。并且当有新的程序员加入时,他们无法理解为什么对话框会有这么多奇奇怪怪的子类。

这些年来,许多程序员都试图重写Windows的通用控件,从按钮到滚动条、工具栏和菜单栏(微软的Office开发团队最喜欢重写的东西)。Netscape 6走的有点过头了,他们重写了Windows的每一个通用控件,这通常会带来一些不可见的副作用。最好的例子就是编辑框。如果你重新实现编辑框,会有许多你从来都没听说过(例如中文编辑插件,支持从左至右和从右至左两个方向读写的Windows版本等)的功能无法工作,因为它们并不识别你书写的非标准编辑框。一些Netscape 6的使用者常常抱怨使用非标准的Netscape编辑框控件搭建出的URL编辑框并不支持右键弹出菜单这个特性。

当你在一致性问题上与反微软主义者或者富有创造力的图形设计师争辩时,他们通常会不正确的引用Ralph Waldo Emerson的名言“一致性是妖怪…”Emerson的本意是“一致性是小精灵…”。(妖怪和小精灵在英语里边只有一点点差异,分别是hob-goblin和hobgoblin,分别代表反面和正面形象。本章标题中使用的也是hobgoblin这个词,表示作者对于一致性还是持肯定态度的。——译者注)

好的UI设计者会聪明地使用一致性,尽管它可能不会很好地展示设计者的创造性,但是从长远来看会使用户高兴。

原文链接: https://www.cnblogs.com/vincentradcliffe/archive/2010/12/29/1919321.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    写给程序员的UI设计书 (译) (六)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/19433

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午8:30
下一篇 2023年2月7日 下午8:31

相关推荐