我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?

同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?


当前回答

“好的UI设计”其实是两个问题:

获得正确的设计 正确的设计

两者都是难题。以我的经验来看,这两件事应该并行进行,这样才能避免在项目后期出现糟糕的惊喜(“为什么我们在IE8中拖放的速度非常慢??”你说它无法修复是什么意思??”)

为了得到正确的设计,你必须探索各种可能性。书籍可以引导你尝试对你的情况最有意义的事情-经验当然更好。此外,你绝对需要来自真实用户的反馈——否则你怎么才能发现设计已经是正确的呢?)你当然看不出来。继续阅读!)

“使设计正确”是下一个问题,因为这意味着必须执行你认为合适的设计。

那些“用户体验/图形用户界面”的事情是如此困难,因为找到正确的答案包括理解人类想要什么——他们不能客观地告诉你,而你也不能从“外部”找到。这意味着(经验)引导的试错方法是唯一可行的方法。


为了更清楚地回答你的问题:

为什么优秀的UI设计对某些人来说如此困难 重击

对于硬核开发人员来说,一个大问题是,他们对软件如何工作的理解与用户认为它如何工作的理解是非常不同的(例如,URL“www.stackoverflow.com”应该写成“com.stackoverflow.com”,如果你知道DNS如何工作的话。但试着销售一个浏览器,它期望url:))。

作为旁注:我建议你着眼于“体验设计”而不是“用户界面设计”,但这是另一个故事。

其他回答

许多开发人员认为,因为他们会写代码,他们就可以做所有的事情。设计界面是一种完全不同的技能,在我上大学的时候根本没有教过这门技能。这不是与生俱来的。

另一本好书是唐纳德·诺曼的《日常事物的设计》。

我认为主要的问题与不同的才能或技能无关。主要的问题是,作为一名开发人员,您对应用程序是做什么的以及它是如何做的了解太多,并且您自动地从具有这些知识的人的角度来设计您的UI。

而用户通常一开始对应用程序一无所知,也不需要了解它的内部工作原理。

不使用你拥有的知识是非常困难的,几乎是不可能的——这就是为什么UI不应该由开发它背后应用程序的人来设计。

程序员通常不擅长UI设计。有些设计师专门从事可用性和UI设计,当涉及到开发商业软件/网站/娱乐等时,他们应该受到尊重。

大多数程序员所面临的问题是,他们无法超越自己的鼻子,意识到什么能让事情更容易理解和消化。

最好的UI设计原则之一是始终将界面设计为简单且易于目标用户访问。

一个简单的例子就是电梯。一般来说,你按下按钮来打开/关闭门,以及穿越建筑物的楼层。你能想象如果你有旋钮和开关,你必须从一楼到二楼吗?如果你必须向后滑动一个面板来访问三个按键开关,你必须以特定的顺序转动三个彩色按键才能到达特定的楼层,那会怎么样呢?

你很快就会发现一个糟糕的界面是多么的困难,而一个好的界面是多么的简单和可用。

设计和美学之间有着巨大的差异,它们经常被混淆。

一个漂亮的UI需要艺术或至少是美学技能,包括我自己在内的许多人都无法做到这一点。不幸的是,就像我们在许多重量级的基于flash的api中看到的那样,这是不够的,并且不能使UI可用。

制作可用的ui需要理解人类如何与计算机交互、心理学中的一些问题(例如,菲特定律、希克定律)和其他主题。很少有计算机科学课程为此进行培训。我认识的开发人员中很少有人会选择用户测试书籍而不是JUnit书籍等等。

我们中的许多人也是“核心程序员”,倾向于将ui视为外观,而不是可以成就或破坏项目成功的因素。

此外,大多数UI开发经验都非常令人沮丧。我们可以使用像旧VB那样的玩具GUI构建器,并不得不处理丑陋的胶水代码,或者我们使用无休止地让我们沮丧的api,比如试图在Swing中整理布局。

我在UI设计方面做了什么? 注意!

这就像当你在新闻上看到图表或电子公交标志时,你会想‘他们是怎么得到这些数据的?他们是用原始sql还是用LINQ?(或者你也可以在这里加入自己的极客好奇心)。

你需要开始这样做,但是要有各种视觉元素。

但就像学习一门新语言一样,如果你不全身心地投入进去,你就永远学不会。

从另一个答案中我写道:

学会观察,真正地观察你周围的世界。为什么我喜欢那个UI而讨厌这个UI ?为什么在这家餐厅的菜单上很难找到面食?我还没看那牌子上的字就知道是什么意思了。为什么呢?那本书的封面怎么这么难看?学会花时间思考为什么你会对各种视觉元素做出这样的反应,然后把它应用到你的工作中。