我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?
我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?
当前回答
用户自上而下地思考,而程序员在开始创建UI时通常是自下而上地思考。
我们(程序员)正在努力地思考如何创建一个数据模型来完成这项工作,并保存所需的数据等等。我们创建UI来整齐地映射到底层模型。以至于我们经常忘记观察我们的用户如何处理相同的任务,而没有进入他们的流程和思维方式。
我们很自然地期望系统的用户以与我们相同的方式思考问题,我们如何存储和处理他们的数据,因此也理解UI期望如何工作。
这通常与他们对任务的看法(和期望)不匹配。
如何解决?我认为一种方法是在向(潜在的)用户展示任何东西之前,实际地询问他们期望程序如何工作。永远不要给他们任何关于我们将如何实现某个功能的提示。与他们一起在纸上创建UI原型,让他们告诉你他们的期望和需求。不要认为任何事情都是理所当然的。
掌机的设计更加自上而下:
在开始开发之前 飞行员,据说是霍金斯带的 一块木头,大小 潜在的飞行员,在他口袋里 的一周。(摘自本文)
他会在木头上模拟要做什么,而不会考虑如何将其实现为代码。每次有了新想法,他就在那块木头上“试试”。
当然,你需要一些指导方针来处理你想到的一些想法,也许不是所有的想法都需要解决,即使我们技术上可以……
请参见要点1(消除选项)和要点3(承诺不足,兑现过多)。
其他回答
我相信所有CS程序员都有能力做出好的可用性设计,因为可用性设计要求开发人员按照特定的路径和规则进行思考。然而,对于一些程序员来说,开发一个好的“有吸引力的”设计几乎是不可能的。这并不意味着两者是不可避免地联系在一起的。这就像莫扎特能写出美妙的音乐,却不擅长足球。
你提到了《别让我思考》这本书。我强烈推荐你阅读这篇文章。
我在UI设计方面做了什么? 注意!
这就像当你在新闻上看到图表或电子公交标志时,你会想‘他们是怎么得到这些数据的?他们是用原始sql还是用LINQ?(或者你也可以在这里加入自己的极客好奇心)。
你需要开始这样做,但是要有各种视觉元素。
但就像学习一门新语言一样,如果你不全身心地投入进去,你就永远学不会。
从另一个答案中我写道:
学会观察,真正地观察你周围的世界。为什么我喜欢那个UI而讨厌这个UI ?为什么在这家餐厅的菜单上很难找到面食?我还没看那牌子上的字就知道是什么意思了。为什么呢?那本书的封面怎么这么难看?学会花时间思考为什么你会对各种视觉元素做出这样的反应,然后把它应用到你的工作中。
程序员通常不擅长UI设计。有些设计师专门从事可用性和UI设计,当涉及到开发商业软件/网站/娱乐等时,他们应该受到尊重。
大多数程序员所面临的问题是,他们无法超越自己的鼻子,意识到什么能让事情更容易理解和消化。
最好的UI设计原则之一是始终将界面设计为简单且易于目标用户访问。
一个简单的例子就是电梯。一般来说,你按下按钮来打开/关闭门,以及穿越建筑物的楼层。你能想象如果你有旋钮和开关,你必须从一楼到二楼吗?如果你必须向后滑动一个面板来访问三个按键开关,你必须以特定的顺序转动三个彩色按键才能到达特定的楼层,那会怎么样呢?
你很快就会发现一个糟糕的界面是多么的困难,而一个好的界面是多么的简单和可用。
我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
是的。观察那些试图使用你的软件的用户,不要帮助他们。也被称为可用性测试。
The basic idea of usability testing is that you take someone with a similar background to your target audience, who hasn’t seen your software before and ask them to perform a typical series of tasks. Ideally they should try to speak out loud what they are thinking to give you more insight into their thought processes. You then watch what they do. Critically, you do not assist them, no matter how irresistible the urge. The results can be quite surprising and highly revealing. Usability testing can be very fancy with one way mirrors, video cameras etc, but that really isn’t necessary to get most of the benefits. There is a good description of how to carry out usability tests in Krug’s excellent book Don’t make me think: a common sense guide to web usability. Most of his advice is equally applicable to testing desktop applications.