界面优先:很多应用程序的开发都从程序的设计开始,这是一个糟糕的方 式。在你编码之前先设计好界面。编码是开发一个程序最繁重的一部分工作,它是昂贵的并且在确定之后难以改变的。而设计相对廉价许多,只需要简单得草稿就行 了,当然你也可以用HTML代码来实现你的原型界面。界面优先的另外一个原因——它就是你最终产品的样子,大家都能够看到你将做出什么样的产品。从界面开 始你能够感觉到产品是存在的,容易使用吗?能够解决什么问题?大家能够在开始就找到这些答案,你也能够灵活的去调整程序。
核心式设计: 从最核心的页面开始设计,然后延伸开去。这意味着在开始你并不需要去考虑页面导航条、页脚内容、颜色和LOGO之类的,你应该将精力花在核心功能的页面 上。例如你设计一个BLOG程序,BLOG文章的显示就是最重要的页面,而不是旁边的分类、页头导航和用户的评论。只有当页面上最核心的元素设计完成了, 你才应该去考虑那些相对次要的内容,然后一步步地向边缘移动,这就是核心式设计。它和那些框架式设计正好相反,先是整体结构,最后才是核心部分。核心式设 计让你把时间花在真正需要关注的地方,你能够尽早的与设计师和开发人员交流,而不是等到所有的部分都设计好了再去。
界面的三态:对于你设计的每一个功能页面,你都必须注意它的三种呈现状态。
- 常规界面:用户在正常使用时操作的界面,上面已经有用户的使用数据显示。
- 初始化界面:当用户第一次来到时看到的界面,上面没有任何用户的数据。
- 错误界面:它会在产生任何错误的时候出现
初始化界面: 忽视你的初始化界面将是一个非常严重的错误。它是用户使用你的程序所见到的第一个界面,失去这个第一印象你将再也无法挽回。设计师们通常会把页面模版的所 有地方都填充上数据,任何一个列表、表单、缝隙和剩余空间都不会放过,他们认为这样看上去很不错,程序会工作得很正常。在大多数的情况下,程序都是出于缺 乏数据的状态的,只有用户长期的使用才会慢慢的填充数据,其实用户都会通过初始化界面的好坏来决定是否使用这个程序。然而很多开发者和设计师都忽略了这一 点,因为他们从来都是在一个充满了数据的测试界面下工作的,很少会扮演一个新的用户进入系统去看看。一个成功的初始化界面应该包括下面的内容。
- 显示快速的教程和帮助性内容
- 给一个填充了内容的示例图片
- 向用户解释如何开始以及最终会看到什么
- 回答初次使用者的基本问题,我看到的是什么?我应该如何做?
记住,一定要给你的用户一个好的开始,留下一个好的印象!
防止错误的设计: 在线的操作难免不会产生错误,这一点是我们应该认同的。不管你是多么仔细的实际你的程序,经过多少次的测试,用户总是会碰到问题。那么如何处理这些不可避 免的问题呢?使用防止错误的设计。就像预防事故的驾驶那样,开发者需要坚持不懈的寻找那些容易让用户混淆和受挫的地方,并且要提供更加友好的错误的提示页 面,给用户清晰的引导,提高用户体验。
关联性胜过一致性: 应该用按钮还是链接,这取决于要执行的动作;日历是用列表显示还是用网格显示,这取决于它会显示多长时间;是否全局的导航链接要出现在所有的页面上,是否 每个页面上都要显示搜索框或者相同的页脚,这些都取决于是否真的需要。当用户需要的时候再给他,用相关联的操作来提示用户,去掉那些没有必要的,不要被那 些生硬的一致性原则束缚了你的设计,用户的体验永远是第一位的。
书写也是界面设计: 伟大的界面是写出来的。你在界面上的用词和像素、图标与字体一样重要。你需要关注那些阅读你的界面的人们想知道什么,以及如何简洁又清晰的表达。你要使用 与你的用户相同的语言来表达,千万不要用那些技术化的词汇,不要像工程师之间的交谈那样,用户看起来会觉得是天书的,尽量使用短小而亲切的句子来表达内 容。几乎在所有的地方文字都是设计的一部分,例如图标旁边的文字、表单的示例、带标签的按钮,还有操作的步骤说明,所有这些都是界面的设计。
统一界面: 将管理界面整合到前端的公共界面中去,所谓管理界面,通常都是用来设置一些参数,管理数据和用户的。因为大部分的精力会花费在前端的界面设计,所以可以将 管理界面前置,不要分隔成两个不同的操作界面。例如一些常用的编辑、添加、删除操作,放在前端的界面里比较合适。如果你同时维护两个不同的界面,其实是一 件痛苦的事情,就像同时交两份税一样,所以尽可能的减少界面的数量,这样才能提高界面的质量。