我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?
我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?
当前回答
我认为我们不能设计ui的原因是因为我们是完美主义者,不能决定什么时候足够好才是足够好。我知道我个人无法忍受UI设计,因为我总是怀疑自己,说:“不,那还不够好。”
其他回答
为什么UI设计对某些开发者来说如此困难?
这有点像问为什么篮球对足球运动员来说很难。
用户界面不像一层薄薄的油漆,是事后才可以涂上去的。它需要从一开始就存在,并基于真正的研究。当然,有大量可用性研究可用。它不仅需要在一开始就存在,它还需要构成你制作软件的核心原因:世界上存在一些差距,一些问题,它需要变得更可用和更有效。
软件不是为了它自己而存在的。软件存在的原因是为了人们。这绝对是荒谬的,甚至试图提出一个新的软件的想法,而不理解为什么人们会需要它。然而,这种情况一直在发生。
在编写每一行代码之前,您应该先检查界面的纸质版本,并在真人身上进行测试。这有点奇怪和愚蠢,它最适合孩子们,有人扮演“电脑”。
界面需要利用我们自然的认知能力。穴居人会怎么使用你的程序?例如,我们已经进化到非常擅长追踪移动的物体。这就是为什么使用物理模拟的界面,比如iphone,比即时发生变化的界面效果更好。
We are good at certain kinds of abstraction, but not others. As programmers, we're trained to do mental gymnastics and backflips to understand some of the weirdest abstractions. For instance, we understand that a sequence of arcane text can represent and be translated into a pattern of electromagnetic state on a metal platter, which when encountered by a carefully designed device, leads to a sequence of invisible events that occur at lightspeed on an electronic circuit, and these events can be directed to produce a useful outcome. This is an incredibly unnatural thing to have to understand. Understand that while it's got a perfectly rational explanation to us, to the outside world, it looks like we're writing incomprehensible incantations to summon invisible sentient spirits to do our bidding.
普通人能理解的抽象概念包括地图、图表和符号。小心符号,因为符号是一种非常脆弱的人类概念,需要有意识的精神努力来解码,直到学会符号。
The trick with symbols is that there has to be a clear relationship between the symbol, and the thing it represents. The thing it represents either has to be a noun, in which case the symbol should look VERY MUCH like the thing it represents. If a symbol is representing a more abstract concept, that has to be explained IN ADVANCE. See the inscrutable unlabled icons in msword's, or photoshop's toolbar, and the abstract concepts they represent. It has to be LEARNED that the crop tool icon in photoshop means CROP TOOL. it has to be understood what CROP even means. These are prerequisites to correctly using that software. Which brings up an important point, beware of ASSUMED knowledge.
我们大约在4岁左右才能获得理解地图的能力。我记得我曾经在什么地方读到过,黑猩猩在六七岁左右获得了理解地图的能力。
The reason that guis have been so successful to begin with, is that they changed a landscape of mostly textual interfaces to computers, to something that mapped the computer concepts to something that resembled a physical place. Where guis fail in terms of usability, is where they stop resembling something you'd see in real life. There are invisible, unpredictable, incomprehensible things that happen in a computer that bare no resemblance to anything you'd ever see in the physical world. Some of this is necessary, since there'd be no point in just making a reality simulator- The idea is to save work, so there has to be a bit of magic. But that magic has to make sense, and be grounded in an abstraction that human beings are well adapted to understanding. It's when our abstractions start getting deep, and layered, and mismatched with the task at hand that things break down. In other words, the interface doesn't function as a good map for the underlying software.
有很多书。我读过的两本,因此可以推荐给你,一本是唐纳德·诺曼的《日常事物的设计》,另一本是杰夫·拉斯金的《人机界面》。
I also reccomend a course in psychology. "The Design of Every day Things" talks about this a bit. A lot of interfaces break down because of a developer's "folk understanding" of psychology. This is similar to "folk physics". An object in motion stays in motion doesn't make any sense to most people. "You have to keep pushing it to keep it in motion!" thinks the physics novice. User testing doesn't make sense to most developers. "You can just ask the users what they want, and that should be good enough!" thinks the psychology novice.
我推荐菲利普·津巴多主持的PBS系列纪录片《发现心理学》。如果做不到,那就找一本好的物理教科书。贵的那种。不是你在Borders书店里找到的低级小说自助废话,而是你只能在大学图书馆里找到的厚精装书。这是一个必要的基础。没有它,你也可以做出好的设计,但你只能凭直觉理解正在发生的事情。读一些好书会给你一个好的视角。
UI设计是一种完全不同的技能。它与视觉艺术密切相关——能够欣赏和创造视觉对称和美。不管出于什么原因,通常程序员都不擅长视觉艺术。我知道有例外,但作为一般规则,这是成立的。
所以真的(除非你是这条奇怪规则的例外)——这应该像处理其他你没有天赋的领域一样。你应该评估一下自己是否能和现有的技能很好地相处——或者甚至可以在有机会的时候花点精力来改进。然而,你最好在自己擅长的领域发展,也许可以寻求在你所不擅长的领域与高手合作。
Marcus Buckingham写的《现在,发现你的优势》是一本很好的书。这本书很容易读。
我为社交圈之外的人设计了一个程序,并观察他们的行为。在这样做的过程中,我不再受制于朋友们的偏见,也不再受制于我自己的骄傲和自我。在改进应用程序的过程中,我变得更加谦虚,对设计问题更加敏感。我学到了以任务为导向的设计和简单的重要性。我明白了拥有太多功能的代价。有了经验,你也会的。
我强烈推荐一些参考资料:
Joelonsoftware杰夫·拉斯金的“人性化界面” 罗宾·威廉的《非设计师设计指南》 大多数UI文章都在alistapart上 Jwz关于编程的博客 苹果人机界面指南
我强烈建议你忽略一些参考文献和哲学:
“主题” 一般的桌面应用程序,除非您需要访问驱动程序/文件系统 “越多越好”的理念
我认为他们的技能非常不同。优秀的设计师了解人类行为、颜色和字体的心理等。我认为这就像同时做营销人员和开发人员一样。非常有挑战性,但也不是不可能。
我会试着找一些用户界面专家,看看他们的学习建议是什么。除非你设计的是像谷歌这样极简主义的东西,否则如果这是一个重要的项目,你最好雇佣那些研究过UI艺术的人。
也就是说,如果你正在设计一款非常实用的应用,我认为你可以试着专注于界面的简单性和清晰度——我认为这至少是谷歌成功(以及堆栈溢出)的一半关键——即它是直观的,使用起来很愉快。