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

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


当前回答

要改进,只要看看现有的网站。除了已经推荐的书,你可能还想看看罗宾·威廉姆斯的好书《非设计师设计书》(亚马逊链接)。

通过看看禅宗花园提交的各种作品,看看视觉设计中有什么可能。

UI设计绝对是一门艺术,就像C语言中的指针一样,有些人懂,有些人不懂。

但至少我们可以对他们的尝试笑一笑。顺便说一句,感谢OK/Cancel的搞笑漫画,感谢Joel把它放在你的书“最好的软件写作I”(经过亚马逊链接的清理)中。

其他回答

要改进,只要看看现有的网站。除了已经推荐的书,你可能还想看看罗宾·威廉姆斯的好书《非设计师设计书》(亚马逊链接)。

通过看看禅宗花园提交的各种作品,看看视觉设计中有什么可能。

UI设计绝对是一门艺术,就像C语言中的指针一样,有些人懂,有些人不懂。

但至少我们可以对他们的尝试笑一笑。顺便说一句,感谢OK/Cancel的搞笑漫画,感谢Joel把它放在你的书“最好的软件写作I”(经过亚马逊链接的清理)中。

我坚持的主要经验法则是,永远不要同时做两件事。如果我正在处理后端代码,我将完成这一工作,休息一下,然后带着我的UI帽子返回。如果你在编写代码时尝试使用它,你将以错误的心态处理它,结果会得到一些糟糕的界面。

我认为同时成为一名优秀的后端开发人员和一名优秀的UI设计师是完全可能的,你只需要努力工作,阅读和研究相关主题(从Miller的#7到Nielsen的档案),并确保你理解UI设计的重要性。

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

编辑:克鲁格的书真的很好……一定要读一读,特别是如果你要为网络设计的话。

我尽量与设计相关的网站和文本保持联系。我发现Robin Williams的著作《the Non-Designer’s Design book》在这些研究中也很有趣。

我相信设计和可用性是软件工程中非常重要的一部分,我们应该更多地学习这方面的知识,不要再为我们不应该做设计找借口了。

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

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

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

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

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

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

用户自上而下地思考,而程序员在开始创建UI时通常是自下而上地思考。

我们(程序员)正在努力地思考如何创建一个数据模型来完成这项工作,并保存所需的数据等等。我们创建UI来整齐地映射到底层模型。以至于我们经常忘记观察我们的用户如何处理相同的任务,而没有进入他们的流程和思维方式。

我们很自然地期望系统的用户以与我们相同的方式思考问题,我们如何存储和处理他们的数据,因此也理解UI期望如何工作。

这通常与他们对任务的看法(和期望)不匹配。

如何解决?我认为一种方法是在向(潜在的)用户展示任何东西之前,实际地询问他们期望程序如何工作。永远不要给他们任何关于我们将如何实现某个功能的提示。与他们一起在纸上创建UI原型,让他们告诉你他们的期望和需求。不要认为任何事情都是理所当然的。

掌机的设计更加自上而下:

在开始开发之前 飞行员,据说是霍金斯带的 一块木头,大小 潜在的飞行员,在他口袋里 的一周。(摘自本文)

他会在木头上模拟要做什么,而不会考虑如何将其实现为代码。每次有了新想法,他就在那块木头上“试试”。

当然,你需要一些指导方针来处理你想到的一些想法,也许不是所有的想法都需要解决,即使我们技术上可以……

请参见要点1(消除选项)和要点3(承诺不足,兑现过多)。