我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?
我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?
当前回答
设计和美学之间有着巨大的差异,它们经常被混淆。
一个漂亮的UI需要艺术或至少是美学技能,包括我自己在内的许多人都无法做到这一点。不幸的是,就像我们在许多重量级的基于flash的api中看到的那样,这是不够的,并且不能使UI可用。
制作可用的ui需要理解人类如何与计算机交互、心理学中的一些问题(例如,菲特定律、希克定律)和其他主题。很少有计算机科学课程为此进行培训。我认识的开发人员中很少有人会选择用户测试书籍而不是JUnit书籍等等。
我们中的许多人也是“核心程序员”,倾向于将ui视为外观,而不是可以成就或破坏项目成功的因素。
此外,大多数UI开发经验都非常令人沮丧。我们可以使用像旧VB那样的玩具GUI构建器,并不得不处理丑陋的胶水代码,或者我们使用无休止地让我们沮丧的api,比如试图在Swing中整理布局。
其他回答
我为社交圈之外的人设计了一个程序,并观察他们的行为。在这样做的过程中,我不再受制于朋友们的偏见,也不再受制于我自己的骄傲和自我。在改进应用程序的过程中,我变得更加谦虚,对设计问题更加敏感。我学到了以任务为导向的设计和简单的重要性。我明白了拥有太多功能的代价。有了经验,你也会的。
我强烈推荐一些参考资料:
Joelonsoftware杰夫·拉斯金的“人性化界面” 罗宾·威廉的《非设计师设计指南》 大多数UI文章都在alistapart上 Jwz关于编程的博客 苹果人机界面指南
我强烈建议你忽略一些参考文献和哲学:
“主题” 一般的桌面应用程序,除非您需要访问驱动程序/文件系统 “越多越好”的理念
我认为这是因为一个好的UI是不符合逻辑的。好的UI是直观的。
软件开发人员通常在“直观”方面表现不佳
没有人建议过,但对你有很大帮助的是参加人因工程学课程(通常是研究生水平)。如果你不想选这门课,至少去找课本读一遍。
吃自己的狗粮实际上并不是最好的方式。缺乏对用户关注的关注,虽然这是事实,但也不是故事的全部。同样,随着您的专业知识的增长,您也会逐渐远离正常的用户关注点。我认识的大多数开发人员都想在开发解决问题的软件方面做得很好。
这种脱节发生在想象力的失败。我们人类没有能力思考所有的可能性和组合。当然,我们试图用“更好的”方法来克服这个问题。
我发现唯一有效的方法就是让自己置身于接收用户反馈的火线上。通过这种方式,我了解到我正在解决的问题,不仅仅是一次,而是在用户使用我的软件的过程中持续不断地进行。
这不是一个简单的解决方案。你不仅要成为一名优秀的程序员,还要擅长X,因为X是你试图解决的任何问题。通过擅长X,你可以获得必要的经验来理解可能性和局限性。你可以开始在你的代码中考虑到这一点,从而在你提供的功能和UI设计中产生更精致的软件。
这不是重新训练你的大脑,而是获得有效解决问题所需的经验。如果你要做的是像Stack Overflow这样的全新游戏,你就必须负责用户反馈才能获得游戏体验。
UI设计和软件开发需要大脑的两个半球。这并不是说设计师在开发方面很糟糕,反之亦然,只是他们试图用错误的大脑来做。任何严肃的人都不会反对。