User interface 为什么好的UI设计对某些开发人员来说如此困难?

User interface 为什么好的UI设计对某些开发人员来说如此困难?,user-interface,User Interface,我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”是否注定只设计业务逻辑和数据层?我们是否可以做些什么来重新训练我们的大脑,以便更有效地设计令人愉悦和有用的表示层 同事们向我推荐了几本书,包括《网站设计》、《不要让我思考》和《为什么软件很差劲》,但我想知道其他人做了些什么来消除他们在这方面的不足?我坚持的主要经验法则是,永远不要同时尝试两种方法。如果我正在处理后端代码,我将完成这项工作,休息一下,然后戴上UI帽子返回。如果您在编写代码时尝试使用它,您将以错误的思维方式

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


同事们向我推荐了几本书,包括《网站设计》、《不要让我思考》和《为什么软件很差劲》,但我想知道其他人做了些什么来消除他们在这方面的不足?

我坚持的主要经验法则是,永远不要同时尝试两种方法。如果我正在处理后端代码,我将完成这项工作,休息一下,然后戴上UI帽子返回。如果您在编写代码时尝试使用它,您将以错误的思维方式处理它,并最终得到一些可怕的接口

我认为做一个好的后端开发人员和一个好的UI设计师是绝对可能的,你只需要努力工作,对这个主题做一些阅读和研究(从Miller's#7到Nielsen's archives),并确保你理解UI设计为什么是最重要的

我不认为这是一个需要创造性的案例,而是像后端开发一样,它是一个非常有条理、非常结构化的东西,需要学习。正是人们对UI的“创造性”创造了一些最大的可用性怪物。。。我的意思是,看看100%的Flash网站,首先


编辑:克鲁格的书非常好。。。一定要读一读,尤其是当你要为网络设计的时候。

我试图与设计特定的网站和文本保持联系。我还发现罗宾·威廉姆斯(Robin Williams)的优秀著作在这些研究中非常有趣

我相信设计和可用性是软件工程中非常重要的一部分,我们应该更多地学习它,不要再找借口说我们不应该做设计


每个人都可以偶尔成为设计师,每个人都可以成为程序员。

真正帮助我改进设计的是找一位开发人员,一位QA人员、PM或任何碰巧路过的人,让他们试用一个特定的小部件或屏幕


当你看到别人第一次使用你的软件时,你会惊奇地发现很多开发人员认为,因为他们可以编写代码,所以他们可以完成所有的工作。设计界面是一项完全不同的技能,在我上大学的时候根本没有教过。这不仅仅是自然而然的事情


另一本好书是唐纳德·诺曼写的。

说到底,这本书是关于同理心的——你能设身处地为用户着想吗

当然,有一件事很有帮助,那就是“吃你自己的狗粮”——把你的应用程序当作一个真正的用户来使用,看看有什么让人讨厌

另一个好主意是找到一种方法来观察使用你的应用程序的真实用户,这可能像一个带有单向镜像、屏幕视频捕获、用户身上的摄像机等的可用性实验室一样复杂,也可能像使用下一个碰巧走进大厅的人制作纸张原型一样简单

如果其他方法都失败了,请记住,UI太简单总比太复杂好。说“哦,我知道如何解决这个问题,我只需添加一个复选框,用户就可以决定他们喜欢哪种模式”。很快你的UI就太复杂了。选择默认模式并将首选项设置为高级配置选项。或者干脆不说了


如果你读了很多关于设计的书,你很容易就会被阴影和圆角等问题所困扰。这不是重要的事情。简单性和可发现性是重要的因素。

在进行UI设计时,我始终牢记以下几点(目前还不是一个完整的列表):

  • 与模型沟通。UI是向用户解释心理模型的叙述。此模型可能是一个业务对象、一组关系,以及您所拥有的一切。视觉突出、空间布局和工作流顺序都在向用户传达该模型时发挥了作用。例如,某种列表与另一种列表意味着不同的事情,以及列表中的内容与模型其余部分的关系。总的来说,我觉得最好确保一次只交流一个模型。程序员经常尝试在同一UI空间中通信多个模型或多个模型的一部分

  • 一致性。重新使用流行的UI隐喻有很大帮助。内部一致性也非常重要

  • 任务分组。用户不必在整个屏幕上移动鼠标来验证或完成相关的命令序列。模态对话框和弹出式菜单在这方面可能特别糟糕

  • 了解你的受众。如果您的用户将一次又一次地进行相同的活动,那么他们将很快成为这些任务的超级用户,并因试图降低初始进入门槛而感到沮丧。如果您的用户不经常做许多不同类型的活动,那么最好确保用户界面始终握着他们的手


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

一个漂亮的用户界面需要很多人(包括我自己)无法创造的艺术技能或至少是审美技能。不幸的是,这还不够,也不能使UI可用,正如我们在许多重量级的基于flash的API中看到的那样

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