10个对开发者非常有用的设计原则

简介:


要点:我会尽力解释Jakob Nielsen的10设计启发式算法。我会用例子告诉你,作为一名开发人员,如何使你的产品以及你产品背后的代码更加有用。

为什么我要在乎这些?

开发者也是设计师,他们只是使用不同的媒介。因此,你知道如何设计系统也是你的最终产品的一部分。

关注于把底层设计的更加有用将会帮助确定以下事情:

  • 对新加入的开发人员更容易上手

  • 系统的可维护性及更改时的简易性

  • 作为这个系统的一名开发者,你是多么的有效率

当我与开发者一起工作的时候发现,这些观念已经在程序员之中存在了–只是他们还没有把这个表达给设计师。还有很多需要去做,但是基础已经存在了,这难道不是好消息吗?

在我的例子中并没有任何实际的代码,因为我觉得人们对于编写任何软件的正确方式都太敏感了。

像设计师一样,程序员喜欢运用他们的创造力来解决复杂的问题。而我宁愿你考虑一下下面关于设计系统的规则,而不是按照一组严格的规定来说“这是解决XX问题最好的方法”。

设计启发式是什么?

启发式只是通过你的经验中学习。它是用于查找在用户界面的易用性问题,使得它们可以参加到作为迭代设计过程的一部分的方法。

我们得到3-5个启发式设计的专家来使用我们的产品,并判断它是否符合最基本的可用性规则,即“10设计启发式”合规,这是启发式的简化。

下面让我们开始吧。

1. 系统状态的可视性

曾经上传图像到一个网站?比如说一个社交网络的头像?

主要的原则是要使你始终可以了解上传的状态。上面的例子只是告诉你上传的状态。而看到它的进步使用户更加舒服,你不觉得吗?

10-design-heuristics-1

10-design-heuristics-1

2. 系统和现实世界之间的匹配

当写文档或命名一个组成部分,始终尝试使用熟悉的术语。了解目标用户是谁,然后使用他们熟悉的单词、短语和概念。

3. 用户控制和自由

10-design-heuristics-2

10-design-heuristics-2

系统应该允许你自由去探索其内容,但是以一种更加负责的方式,应该让你可以从你可能犯的错误中进行恢复。比如说支持“撤销”与“重做”。

4. 一致性和标准

苹果和微软都对“确定”和“取消”按钮的顺序有不同的意见。哪个更好?

10-design-heuristics-3

10-design-heuristics-4


都不好或者都好?当然,这并不重要,重要的是你要确保所有用户交互系统的一致性。

10-design-heuristics-3

要做到这一点,你就不应该让你的用户困惑,为什么不一样的单词、不一样的环境或者操作确得到相同的结果。

5. 错误的预防

在错误可能发生的第一个位置阻止错误是非常重要的。

当我们一开始的时候,就有QA人员来寻找产品中的缺陷以保证产品质量。然后把他们放到生产线上,让他们指出如何在第一道工序开始就做出没有缺陷的产品。你会惊讶于这样的效率是多么的高,当你做的东西中的缺陷在第一时间被发现而不是到最后才被发现。

— Mary Poppendieck

6. 可识别性

显示出提升用户可用性的标识,这是另一个有帮助的内容。

CLI(命令行接口) 是一个完全无视这一原则的最好的例子,通过这样,它演示了优雅(它用灵活性与效率来弥补了它所缺少的)。

7. 灵活性和使用效率

在你的系统上提供一个潜在的、隐藏的层,来帮助有经验的用户通过“噪声”,变得更加有效率。

Cli 就是这样一个“隐藏”界面的功能是可以多么强大的例子(我们甚至可以选择扩展)。

8. 简洁

最初被列为“审美和简约设计”。这一原理是关于提高信噪比的。

你提供给用户的所有数据都要有一定的约束–是否有臃肿的HTTP请求的占用带宽、充满缺陷的API、以及需要太多请求的交互界面。

尽量用最小的输入,获得最大的产出。

9. 帮助用户识别、诊断和从错误中恢复

错误消息应该用平实的语言表达(没有代码),精确显示问题,建设性地提出一个解决方案。对用户是有用的。并且提供一个解决方案。

就像 这样

10. 帮助和文档

在设计原则的列表中看到这一项,我和你一样感到惊讶。

即便没有文档也可以使用的系统,最好也还是要提供帮助和文档。任何此类信息都应该易于搜索,关注用户的任务,列出具体的进行步骤,并切不应该太大。

总结

我希望这对你是有帮助的。如果你有任何问题或看法,请留言。


来源:51CTO

相关文章
|
2月前
|
设计模式 API 数据安全/隐私保护
探索设计模式的魅力:外观模式简化术-隐藏复杂性,提供简洁接口的设计秘密
外观模式是一种关键的设计模式,旨在通过提供一个简洁的接口来简化复杂子系统的访问。其核心价值在于将复杂的内部实现细节封装起来,仅通过一个统一的外观对象与客户端交互,从而降低了系统的使用难度和耦合度。在软件开发中,外观模式的重要性不言而喻。它不仅能够提高代码的可读性、可维护性和可扩展性,还能促进团队间的协作和沟通。此外,随着业务需求和技术的发展,外观模式能够适应变化,通过修改外观对象来灵活调整客户端与子系统之间的交互方式。总之,外观模式在软件设计中扮演着举足轻重的角色,是构建高效、稳定且易于维护的软件系统的关键
72 1
探索设计模式的魅力:外观模式简化术-隐藏复杂性,提供简洁接口的设计秘密
|
15天前
|
机器学习/深度学习 搜索推荐 Android开发
【专栏】构建高效安卓用户界面的指南,分为设计原则和技巧两部分
【4月更文挑战第27天】本文介绍了构建高效安卓用户界面的指南,分为设计原则和技巧两部分。设计原则包括一致性、简洁性和可访问性,强调遵循安卓系统规范,保持界面简洁,考虑不同用户需求。技巧方面,建议合理布局、优化图标和图片、运用动画效果、提供个性化设置及优化性能。随着技术发展,未来安卓应用开发将融合更多智能化和个性化元素,开发者需持续学习新技术,提升用户体验。
|
2月前
|
算法 程序员 C语言
C++设计哲学:构建高效和灵活代码的艺术
C++设计哲学:构建高效和灵活代码的艺术
62 1
|
3月前
|
存储 算法 C语言
【编程陷阱】编写出色C++代码:遵循的注意事项和最佳实践
【编程陷阱】编写出色C++代码:遵循的注意事项和最佳实践
35 0
|
11月前
|
存储 缓存 搜索推荐
复杂系统设计原则与案例
## 一、复杂是软件的本质属性 ### 1.1 复杂是软件的本质属性 正如Brooks所言,软件复杂性是软件固有的属性,这种固有的复杂性主要由4个方面的原因造成的: - 问题域的复杂性 - 管理开发过程的复杂性 - 随处可变的灵活性 - 描绘离散系统行为的问题 上面每一个方面都有极大的挑战,以「问题域的复杂性」为例,现在我们的大型系统中,动不动就几十个应用,组合在一起就是一个复杂的系统,而每个
1328 4
复杂系统设计原则与案例
|
11月前
|
程序员 测试技术
《重构2》第十章-简化条件逻辑
《重构2》第十章-简化条件逻辑
305 0
|
设计模式 移动开发 前端开发
😲Review 实战经典:2 种封装风格,你偏爱哪种?
所以大家在后台管理系统项目中遇到的很多问题也都是相似的,代码很值得 review,本篇带来一例(真实)
模型驱动是什么意思?底层原理是什么?
模型驱动是什么意思?底层原理是什么?
755 0
|
数据可视化
【设计篇】36 # 如何理解可视化设计原则?
【设计篇】36 # 如何理解可视化设计原则?
196 0
【设计篇】36 # 如何理解可视化设计原则?
|
算法
第七章 多用模板专注设计(上)
第七章 多用模板专注设计
70 0
第七章 多用模板专注设计(上)