正视UI设计——读【软件观念革命】【二】

来源:百度文库 编辑:神马文学网 时间:2024/05/01 17:21:28
正视UI设计——读【软件观念革命】【二】
【设计方法】
在前面,我们看了很多从理论对如何做一个有优秀UI的软件的描述。但归于实际,很多问题会比较难以操作。比如,用户的目标怎么发掘,其心智模型怎么探究等等。诸如此类的问题,都会需要有一套切实可行的实践指导方案。
书中提出了一整套完整的解决方法,指导程序员进行UI设计。实践、理解并合理运用这套方案,可以使你的UI设计变得更加的容易。
对于这部分内容,由于我实践经验的限制,不敢写太多东西。等日后我积累了一些经验后,我会重新阅读这部分内容。在这里,只是简单的列举一下书中提及的一些要点和一些肤浅的个人理解。如果你有足够的实践经验,请仔细阅读书中第一部分的内容,想必你一定不会空手而回。
在书中的18~19页,对UI设计的整体步骤有详尽的描述。粗略的说,分成5个阶段,按时间排序,分别是研究、建模、需求、框架和优化,相邻两个过程互相迭代。具体而言,先需要对所面对的软件问题做定性研究。就是通过各种人种学手段,对用户的基本情况,用户对问题的理解,和其对产品的要求等等信息了解清楚。然后,进入到用户建模过程。在这个过程中,有两个重要的概念。一个是用户角色,所谓角色就是对所有用户的信息做一个抽象,将类似的信息的用户抽象提取归为一个角色;另一个是目标,了解了角色,就需要具体确定该角色想利用该软件完成的具体目标。这是目标导向设计的关键。了解了用户目标,最后还需要利用一些手段将目标转化成为设计。这个手段就是脚本提纲。顾名思义,脚本提纲,是对用户日常使用该软件的过程进行详细的描述。就像写故事一样,记录下用户使用软件的整个过程和其中的种种细节。当然,这个过程是你通过你调查获得的信息虚构出来的。
这方法,让我想起了《.Net设计规范》中FCL设计师们设定类库接口的方法。他们会先邀请(或虚拟)一些用户,让他们写一些代码模拟他们完成某个功能的过程,然后按对场景的重要性进行一些排序,最终用以辅助完成类库接口的设计。这种从用户虚拟做为起点,反向抽取设计方案的方法,确实值得借鉴。
【软件姿态】
学过设计模式的人都知道,在GOF那么巨作中,提出了三大设计原则,还有23种经典的设计模式。这23种模式应用于不同的场景,每当我们碰到类似于某个模式场景问题的时候,我们都会考虑并灵活应用该模式。从而减轻了我们的设计负担,因为我们站在巨人的肩膀上。
在UI设计中,我们已经看到了前面那些基本理论和思想。但要真正快速的应用与实践中,我们还需要一些固有的模式。其中,一种模式的划分方式就是按照软件姿态。所谓软件的姿态,就是软件向用户表达自身信息的方式。通常,我们可以把桌面应用程序划分成一下几种姿态:
1.独占姿态
独占姿态,就是全屏的,需要长时间占用用户注意力的程序。比如office套件,Visual Studio之类的。使用这类软件的人,基本上,绝大多数都是永远的中间用户(恩,想想看,有几个人敢说自己精通Word,又有几个用过Word的人不会用Word打字)。因此在软件设计中,我们应该十分充分的考虑他们的感受。对于新手和专家而言,我们应该在满足了中间用户的需求下,尽量满足他们的需求。对于一个独占姿态的程序来说,应该将自己的空间视为整个屏幕,充分利用屏幕的每一个像素。有些辅助工具条,只要有用,不要怕放的太多。在视觉方面,应该使用少一点、保守一点的颜色,提供多的非模式反馈,鲜艳明亮的颜色也许很酷,但它会让长期使用的人感到不适。要丰富你的输入手段,比如菜单、工具条、快捷键、因为对于中间用户来说,他们希望能快速的按他们喜欢的方式进行输入。此外应该尽量扩大你的文档区域(就是主要功能部分),因为这是用户真正需要的,他们需要不费力气的把握整体状况。
2.暂时姿态
暂时姿态的程序打开又关闭,用一套非常有限的附加控件,展示一些单一的功能。比如,Windows的音量调节,计算器等,还包括所有的对话框。对于暂态的程序而言,应该使用明亮清晰的颜色,控件尽量的大而简洁。因为使用者很可能是新手(对于暂态程序而言,存在大量很少使用的中间用户,他们也会暂时退化成新手的),只有这种界面才能帮助他们快速上手。除非是十分的必要,否则只要使用一个窗口或视图(比如对话框叠对话框的设计都是不大好的),否则会增加使用者的上手难度。此外,暂态程序应该记住上次使用的状态,帮助用户在下次启动时能快速完成他需要做的事情。这一点对于暂态程序是十分有效的,因为没有用户会希望在暂态程序上花费太多的时间。
3.精灵姿态
精灵姿态就是指那些静静的默默的在后台运行的程序,很多应用程序在不需要交互的时候都会转化成这种姿态。Windows操作系统中,基本上大部分精灵姿态的程序都会在任务栏托盘中留下一个标志,这基本上就是精灵姿态程序的所有UI了^_^。
4.辅助姿态
混合了暂时和独占姿态的程序具有辅助姿态。比如迅雷的浮动提示窗口。它们像独占程序一样长期占用屏幕空间,但占用的空间很小,并且只起到辅助作用。它存在的目的是通过有限的窗口,向用户提供最需要的关于它工作状况的信息。因此,它提供的信息必须简洁,且非常显眼。
关于Web程序和其他程序的姿态,理解出来的不多,就不废话了。书中后面对Web程序的涉及也比较有限,毕竟这不是一本关注与Web设计的书籍。