我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?
我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?
当前回答
设计和美学之间有着巨大的差异,它们经常被混淆。
一个漂亮的UI需要艺术或至少是美学技能,包括我自己在内的许多人都无法做到这一点。不幸的是,就像我们在许多重量级的基于flash的api中看到的那样,这是不够的,并且不能使UI可用。
制作可用的ui需要理解人类如何与计算机交互、心理学中的一些问题(例如,菲特定律、希克定律)和其他主题。很少有计算机科学课程为此进行培训。我认识的开发人员中很少有人会选择用户测试书籍而不是JUnit书籍等等。
我们中的许多人也是“核心程序员”,倾向于将ui视为外观,而不是可以成就或破坏项目成功的因素。
此外,大多数UI开发经验都非常令人沮丧。我们可以使用像旧VB那样的玩具GUI构建器,并不得不处理丑陋的胶水代码,或者我们使用无休止地让我们沮丧的api,比如试图在Swing中整理布局。
其他回答
我尽量与设计相关的网站和文本保持联系。我发现Robin Williams的著作《the Non-Designer’s Design book》在这些研究中也很有趣。
我相信设计和可用性是软件工程中非常重要的一部分,我们应该更多地学习这方面的知识,不要再为我们不应该做设计找借口了。
每个人都可以偶尔成为设计师,每个人也都可以成为程序员。
你提到了《别让我思考》这本书。我强烈推荐你阅读这篇文章。
我为社交圈之外的人设计了一个程序,并观察他们的行为。在这样做的过程中,我不再受制于朋友们的偏见,也不再受制于我自己的骄傲和自我。在改进应用程序的过程中,我变得更加谦虚,对设计问题更加敏感。我学到了以任务为导向的设计和简单的重要性。我明白了拥有太多功能的代价。有了经验,你也会的。
我强烈推荐一些参考资料:
Joelonsoftware杰夫·拉斯金的“人性化界面” 罗宾·威廉的《非设计师设计指南》 大多数UI文章都在alistapart上 Jwz关于编程的博客 苹果人机界面指南
我强烈建议你忽略一些参考文献和哲学:
“主题” 一般的桌面应用程序,除非您需要访问驱动程序/文件系统 “越多越好”的理念
“我们能做些什么来重新训练我们的大脑,让它更有效地设计出令人愉悦、有用的展示层吗?”
是的——使用接口驱动的架构。首先根据业务需求设计用户流程——然后根据用户流程设计编程逻辑和数据库。如果你将中间层和后端设计成服务前端的结构,那么你将拥有一个以用户为中心的应用程序。
原因有很多。
(1)开发者不能站在用户的角度看问题。这是通常的怀疑:缺乏同理心。但这通常不是真的,因为开发人员并不像人们想象的那样陌生。
(2)另一个更常见的原因是,开发人员太接近自己的东西,在他的东西上呆了这么长时间,没有意识到其他人可能并不那么熟悉他的东西(这是一个比直觉更好的术语)。
(3)还有一个原因是开发人员缺乏技术。
我的最大主张:阅读任何UI,人类交互设计,原型书。例如:设计显而易见的:一种Web应用程序设计的常识方法,不要让我思考:一种Web可用性的常识方法,设计时刻,等等。
他们如何讨论任务流程?他们如何描述决策点?也就是说,在任何用例中,至少有3条路径:成功、失败/异常、替代。
因此,从点A,你可以去A.1, A.2, A.3。 从点A.1,你可以得到A.1.1, A.1.2, A.1.3,等等。
他们如何显示这种向下钻取的任务流程? 他们没有。他们只是掩饰它。
因为即使是UI专家也不具备技术,所以开发者也没有机会。 他认为这在他的头脑中是清楚的。但它甚至在纸上都不清楚,更不用说在软件实现中了。
我必须用我自己的手工制作技术。