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

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


当前回答

这一切都是关于练习,一些训练和回顾。但是大多数后端开发人员工作的环境中,优秀的ui设计并不真正受到管理层的重视。

在阅读了一些关于UI设计的文献之后,组织一些关于UI设计的代码dojo。

其他回答

阅读苹果人机界面指南。

我建议你从现在做UI的方式开始,不要关注可用性之类的东西。

可选文字 http://www.stricken.org/uploaded_images/WordToolbars-718376.jpg

现在想想这个:

一个设计师知道他已经达到了完美,不是当没有什么可以添加的时候,而是当没有什么可以删除的时候。 ——圣艾修伯里

并应用到你的设计中。

在进行UI设计时,以下是我始终牢记的一些事情(到目前为止还不是一个完整的列表):

Communicating a model. The UI is a narrative that explains a mental model to the user. This model may be a business object, a set of relationships, what have you. The visual prominence, spatial placement, and workflow ordering all play a part in communicating this model to the user. For example, a certain kind of list vs another implies different things, as well as the relationship of what's in the list to the rest of the model. In general I find it best to make sure only one model is communicated at a time. Programmers frequently try to communicate more than one model, or parts of several, in the same UI space. Consistency. Re-using popular UI metaphors helps a lot. Internal consistency is also very important. Grouping of tasks. Users should not have to move the mouse all the way across the screen to verify or complete a related sequence of commands. Modal dialogs and flyout-menus can be especially bad in this area. Knowing your audience. If your users will be doing the same activities over and over, they will quickly become power users at those tasks and be frustrated by attempts to lower the initial entry barrier. If your users do many different kinds of activities infrequently, it's best to ensure the UI holds their hand the whole time.

UI设计与其说是科学,不如说是艺术,它需要你对用户的理解和与他们感同身受的能力。

这和整天对着电脑说话是完全不同的。

我认为人们并不总是意识到这一点。

这里有一个小小的自我测试:看看FamFamFam的丝绸图标。考虑一下在您编写的上一个应用程序中选择哪个图标来表示各种功能。如果花超过十分钟的时间来做这件事让你的眼睛开始呆滞,那么UI设计可能不适合你。

我知道,当我制作出一个糟糕的UI时,几乎总是因为我过于专注于它的特定部分。

在开发和测试一个特定功能的过程中,我几乎总是会多次使用它。

在我检查了十几次之后,我就处于这样一种心态:我确切地知道我要做什么,也确切地知道我需要做什么才能让程序按我想要的做。我也和观看这个特定的作品功能本身,一遍又一遍,直到它“完成”。当我在测试时,我会快速浏览应用程序/菜单/工作流/其他内容。

用户的情况完全不同。他们没有把软件的这一部分看作一个独立的“块”。他们并不总是经常这样做,当他们经常这样做的时候,他们肯定不会经常独自做。他们不会像开发人员那样“跳过”过程的其余部分,只专注于这一部分。

重要的是试着看UI,然后思考“我应该用它做什么?”如果不清楚,说明你做错了。我们所处的情况是,我们知道软件需要什么输入,我们只是想办法获得这些输入。用户所处的情况是他们想要某种结果,他们想知道他们必须做什么才能得到这个结果。