因为我提倡一种非标准的方法,Jon Galloway在一段评论里点了我的名:

年,他们很清楚怎么去填写这些表单。如果采用其他方法,用户会感到困惑,有些人还会落荒而逃(丢掉购物车,等等)。Web表单很有效,我们都知道如何使用它们。你给出的例子在很大程度上违背了“别让我思考”的原则。

从某种意义上来说,他是对的。就编码而言,正如Steve Rowe指出的那样,协调一致总是优于标新立异

分钟才开始有点明白你当初的意图;或者更为糟糕的是,他们认为你做错了,然后以一种不太玄妙的方式来“纠正”你的错误。两种结果都是不理想的。除非你是单干,而且代码是一次性的,否则你必须以一种容易被理解、从而容易被维护的方式去编写代码。

在写代码方面,抱着“试一试这种方式怎么样”的态度显然是不明智的。AlexPapadimoulis很风趣地指出了这一点:

有个客户请我定制了一个货架,还要我帮他安装。在我准备把货架固定起来的时候,我碰到了一个问题:我该用什么来敲钉子呢——旧鞋跟还是玻璃瓶?

磅的小钉子,你会发现用瓶子要容易得多;尤其是在你的鞋子还很脏的情况之下。但是,如果你要往木头上钉一个很粗的钉子,那还是用鞋子比较好一点——要不然,瓶子会砸碎在你手里。

b)    你做这件事的方式存在根本性的错误。你需要使用真正的工具!没错,这意味着你要去打开工具箱(甚至跑一趟五金店)。但是,用正确的方式做事会节省你的时间和金钱,还会延长产品的使用寿命。除非你真正理解构造某样东西的基本要素,否则你不应该花钱动手去做。

然而,如果说到用户界面,一致性却并不总是好的。用户界面应该内部保持一致,但横向与世界上的其他应用程序保持一致就没必要了。也就是说,有些UI元素在大众文化里已经根深蒂固了,为了一致起见,它们应该被保持。典型的例子有:

  • 右上角的搜索框;
  • 左上角的商标(Logo),并且点击之后能回到主界面;
  • “前进” 按钮和“后退”按钮。

但是,不是所有用户界面规范都是同等重要的。有些是久经考验的;有些就是缺省情况下被使用的,它们的存在只是因为没有人正儿八经地提出足够的质疑;还有些已经不合时宜,变得越来越不适用了。问题是,我们怎么来区别真正有益的规范和不合格的“规范”呢?

答案当然是,尝试多种不同的方法,收集用户使用数据,并以此来判断什么可行、什么不可行。这种做法(相对而言)对于Web应用是容易的——亚马逊、雅虎和谷歌经常这么干,他们在这方面已经“臭名远扬”——他们把一些试验性质的功能特性推给一小部分用户,收集数据以分析这些功能是如何被使用的,并把这些数据作为决策的依据。

在用户界面方面,如果我们总是墨守成规,超级好用的Tivo UI还会诞生吗?还会有惊艳的Windows MediaCenter吗——它的电视界面可完全不像Windows?Office 12会抛弃传统的工具条和菜单,转而使用新颖的功能区来组织界面吗?真见鬼,我们还会从纯文字年代过渡到GUI年代吗?

我认为,用户界面方面的试验不仅值得去做,而且也是必要的。如果不做试验,我们的用户界面就不会进化。关键是,我们必须采用正确的做事方式:

  1. 全面了解当前的规范以及它形成的缘由;
  2. 偏离这个规范需要有理有据;
  3. 在试验过程中收集用户使用数据;
  4. 基于数据做决定。

如果你不收集用户使用数据,或者你的理由是“这样看起来更好”,那么你就是在犯错误,还不如老老实实遵循规范吧!

UI设计切忌墨守成规,但改变也须用数据说话的更多相关文章

  1. 9个永恒的UI设计原则

    很多人都在寻找那些能够帮助他们快速提升设计能力的方法,但你是否想过,自己身上的哪些方面会对你的设计产生影响呢?是使用工具的技巧,对设计的理解和态度,还是你的生活习惯呢?我想说所有这些都是决定你的设计是 ...

  2. 缩放因子和UI设计

    一.PPI 1.像素密度PPI:PPI(Pixel Per Inch by diagonal):表示沿着对角线,每英寸所拥有的像素(Pixel)数目. 根据勾股定理(直角三角形两边为a和b,斜边为c, ...

  3. UI设计实战篇——利用Bootstrap框架制作查询页面的界面

    Bootstrap框架是一个前端UI设计的框架,它提供了统一的UI界面,简化了设计界面UI的过程(缺点是定制了界面,调整的余地不是太大).尤其是现在的响应时布局(我的理解是页面根据不同的分辨率,采用不 ...

  4. 从Web借鉴UI设计

    从Web借鉴UI设计 用户体验已经成为衡量应用软件质量的重要标准.在过去我们可能会惊叹于某个Web应用的华丽界面,现在,随着HTML5的强势登场,各类表现层技术及开发框架的发布,Web与窗体应用的界限 ...

  5. 国外一些好用的UX/UI设计工具和资源分享

    国外一些好用的UX/UI设计工具和资源分享 你今天使用的设计工具也许不再适合以后的网页和APP设计项目了.新的工具不断的推出市场,目标只有一个,让你的工作更快.更容易而且工作成效更好.今天分享的这些U ...

  6. 移动周报:十款最实用的Android UI设计工具

    上一周可以说是一个不断Mark周,从最实用的Android UI设计工具.免费移动应用测试框架推荐,到HTML5开发框架等等,各种开发工具.框架精彩丰呈,看得小伙伴们是不亦乐乎.当然,还有不容错过的M ...

  7. UI设计(流程/界面)设计规范

    1.UI设计基本概念与流程 1.1 目的 规范公司UI设计流程,使UI设计师参与到产品设计整个环节中来,对产品的易用性进行全流程负责,使UI设计的流程规范化,保证UI设计流程的可操作性. 1.2范围  ...

  8. Android UI设计

    Android UI设计--PopupWindow显示位置设置 摘要: 当点击某个按钮并弹出PopupWindow时,PopupWindow左下角默认与按钮对齐,但是如果PopupWindow是下图的 ...

  9. Android UI设计规则

    Android UI技巧 1.1 不该做什么 l  不要照搬你在其他平台的UI设计,应该让用户使用感觉是在真正使用一个Android软件,在你的LOGO显示和平台总体观感之间做好平衡 l  不要过度使 ...

随机推荐

  1. aways on 配置部署(一)——准备工作

    sqlserver的aways on 配置需要经历三个步骤,前面两个步骤是对aways on 配置的一个准备步骤. 经过了一个星期的研究,终于成功的完成了前两个步骤,期间参考了很多的资料和博客,总感觉 ...

  2. python 循环和file操作实现用户密码输错三次将用户锁定

    一.需求编写登录接口1.输入用户名密码2.认证成功后显示欢迎信息3.输错三次后锁定 二.简单思路登录,三次密码输入错误锁定用户1.用户信息文件:存放用户名和密码2.黑名单文件:将输入三次错误的用户加入 ...

  3. Java中的内存分配

    Java程序在运行时,需要在内存中分配空间,为了提高效率,就对空间进行了不同区域的划分,因为每一片区域否有特定的处理数据方式和内存管理方式. 1.栈存储局部变量 2.堆存储new出来的东西 3.方法区 ...

  4. BDD敏捷开发入门与实战

    BDD敏捷开发入门与实战 1.BDD的来由 2003年,Dan North首先提出了BDD的概念,并在随后开发出了JBehave框架.在Dan North博客上介绍BDD的文章中,说到了BDD的想法是 ...

  5. cassandra 3.x官方文档(4)---分区器

    写在前面 cassandra3.x官方文档的非官方翻译.翻译内容水平全依赖本人英文水平和对cassandra的理解.所以强烈建议阅读英文版cassandra 3.x 官方文档.此文档一半是翻译,一半是 ...

  6. [Centos7] bbc tools安装

    作者 运维开发群 @军爷,bbc是什么? 请参考 Brendan大爷的博客 Linux 4.9's Efficient BPF-based Profiler 更新到最新 CentOS 7.3 1611 ...

  7. AFNetworking详解和相关文章链接

    写在开头: 作为一个iOS开发,也许你不知道NSUrlRequest.不知道NSUrlConnection.也不知道NSURLSession...(说不下去了...怎么会什么都不知道...)但是你一定 ...

  8. ANT不完全总结,包含各种命令,ant例子等,转自:http://lavasoft.blog.51cto.com/62575/87306

    ANT不完全总结   好久没有用Ant了,最近让MyEclipse.JBuilder2008逼的重回Ant上了.手生了,写了一个脚本后,重新总结下.参考了官方的文档和网上一些资料.   一.ANT的介 ...

  9. PHP + JavaScript + Ajax 实现无刷新页面加载效果

    数据源工厂 Json生成方式1 Json生成方式2 数据搬运工 数据加工师 转换类型 加工展示 结果展示 初始页面 点击按钮之后 总结 今天这个实验的思路就是实现一个无刷新的页面加载效果.具体的思路是 ...

  10. Python excel 奇怪的通信规则

    直接: for i in range(1,n+1): print(i) if xls.getCell(i,1,1)=='id': res=[] xls.xlBook.Worksheets(i).Nam ...