排序的人文魅力
作者:lytous 来源:UCDChina.com 发布时间:2008-05-06 12:47:00
1. 排序有什么用
“排序”这个专业名词原本是来源于计算机程序操作中的,是一种很常见的算法设计,当然,对交互设计来说,探讨冒泡排序和堆排序之间的效率是没有实际意义的,我们今天从用户日常使用的产品来入手,分析下排序的交互价值。
一般来说,排序的重设计有2个作用:a. 使信息有序化,符合逻辑思考,更易读;b. 调整数据集合的关系,易记易操作,提高工作效率。
我们生活中经常会遇到排序的情况,主动型:宴请客人,主人做上位,从左至右按在座人员的重要性分散,这是基本的生活情形。
被动型:你到超市购物排队,为了提高效率,超市决定将购物多的顾客和购物少的顾客分开进行收银处理,也是一种常见的排序处理。
但是根据设计师出发点的不同,我们见到的很多产品中的排序并不是很好的,这主要是由于产品指导方向和设计策略的不同引起:
2. 技术性排序解决问题
上述提到的第二个例子属于技术性排序的问题,解决问题是此类排序设计的最终目的。优秀的产品设计可以通过排序高效率的解决问题,比如:picasa 的相册软件,在排序的属性分类上做了很好的频度调整,解决了很多图片管理软件无法建立大量图片之间的关联和智能查找的问题。但有个问题,它把我不想显示给别人的隐藏图片也找出来了。
而普通的产品设计也能解决问题,但效率不高,比如:windows的目录结构,当 * 作一个文件的时候经常就是不断的打开文件夹-打开-打开-复制,再打开-打开-打开-粘贴,然后某些情况下还要返回-返回-返回…… 每个用户对于常用的文件夹操作是固定的,为什么不加入一个“转到”命令呢?然后把经常访问的文件夹地址做个列表。
当然,某些看上去卓越的产品也会产生排序的困扰,比如:ipod的歌曲选择列表,你可以尝试一下在ipod中放入7000首歌曲,然后选择,虽然他提供了很多维度来控制排序的范围,但是一旦出现歌曲信息不完整和错误的话。。。。。这点在中国地区使用的时候尤为明显。(这里我不想讨论copyright的问题)
3. 情感化排序体现创意
排序仅仅是提高工作效率吗?不是的,排序是一个技术基础,如何运用它得看谁来做,我相信游戏设计师是伟大的。通过排序算法的设计,他们设计出了拼图,俄罗斯方块,接龙等经典游戏,虽然动用了一些数学技巧,但是游戏的结构是简单的,就是通过满足排序规则,得到积分,并获得最终胜利。
大量的软件,web,电子产品的排序都以“按时间”“按日期”“按名称”……. 虽然给了用户一定的自定义空间,但是仍然感觉它们是冰冷的,它们仅仅提供了简单的查询功能,如果加入“按我的使用习惯”“按口碑”“按推荐次数”呢?感觉到了交流才能感觉到实在的心理享受。
创意是在功能化的基础上更好的引起用户的兴趣,更好的带领用户跟随产品一起发展,这点上很多产品和服务做得不够。
4. 排序的人文情境
我前面举的那个吃饭的例子就是典型的人文情境的影响,还有一个比较有趣的事例是:
中国很多研发型公司的项目确认文档,我相信大家都见过,一般来说CEO是在第一位的,接下来是市场总监–财务总监–研发总监–产品总监–研发1组leader。。。。。。
但是签字确认的时候却是从下至上,研发1组leader–产品总监–研发总监–。。。。。。–CEO,这样就导致最终对产品设计有发言权的人是最后才看到产品设计的。
为什么会这样呢?因为在中国人的文化中,CEO(老板)的名字应该是在第一位的,以表示公司全体成员对他的尊敬。
我们按照理性因素设计出来的流程却按照感性因素来实施,这是排序本身无法解决的问题。还有一个事例:
目前义务教育中对学生的评估方式已经由“第一名….最后一名”转移到了“优-良-中-差”,这是一个排序参考维度的改变,但带来的是教育评估系统的改革,至少现在没有看到多少学生为了单纯的排名去 * 了。
5. 排序最优论
通过上面的分析,确定一个排序方式和算法(这里指信息架构中的设计方式,而不是代码公式)是否最优有几个评估维度:
a. 技术是否达标; b. 是否和使用者建立情感联系; c. 是否考虑到使用情境的人文环境; d. 是否经过一段时间的临床检验
是否有最优的排序? 我想这和使用排序的针对人群有关,首先固化你的对象,然后挑选平均的参考数据,设计出来的排序规则必须坚持公平,公正,有效,容错的原则。
一个排序方式不可能适合所有的环境和用户,在技术型难题解决的前提下,请更多的考虑人文化因素的影响。


猜你喜欢
- 在sql语句中,我们难免会用到单引号嵌套的时候,但是直接嵌套肯定是不行的,java中用反斜杠做转义符也是不行的,在sql中是用单引号来做转义
- tensorflow里面提供了实现图像进行裁剪和填充的函数,就是tf.image.resize_image_with_crop_or_pad
- 1.1.1 摘要在开发过程中,我们不时会遇到系统性能瓶颈问题,而引起这一问题原因可以很多,有可能是代码不够高效、有可能是硬件或网络问题,也有
- 提高MySQL 查询效率的三个技巧小结MySQL由于它本身的小巧和操作的高效, 在数据库应用中越来越多的被采用.我在开发
- 使用的类库pip install openpyxl操作实现•工作簿操作# coding: utf-8from openpyxl import
- 本文实例讲述了ThinkPHP框架下微信支付功能总结。分享给大家供大家参考,具体如下:摘要此文主要为个人解决 ThinkPHP3.2.3 下
- List>>> [chr(i) for i in range(97,123)]['a', 'b&#
- 准备正常情况下,创建class的实例后,可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。首先定义一个classclass A(obj
- 在jupyter notebook或者是 Qtconsole下编译运行一个简单的pyqt程序,总是报错:The kernel appears
- 花式打印9*9乘法表#第一个计数器i = 1while i < 10: #第二个计数器 j = 1
- 上学的时候经常使用MySql,当时也没想其他,主要是MySql对电脑的要求比较低,负载比较小。工作后一直在使用Oracle,现在因为项目的需
- 这只是自己练习的一个记录而已。因为某种原因,不想用yii自带的user表,想用自己建的admin数据库表,修改如下:1. 参考高级模板里里的
- 在并不知道DIV浮动层的宽度,高度的情况下,如何使浮动层在任何分辩率的情况下居中呢! 下面使用了JAVASCRIPT来
- 片头语:因为工作需要,在CentOS上搭建环境MySQL+Python+MySQLdb,个人比较习惯使用Windows系统的操作习惯,对纯字
- 数据库对象表时存储和操作数据的逻辑结构,而数据库对象存储过程和函数,则是用来实现将一组关于表操作的sql语句当作一个整体来执行。在数据库系统
- 这里分享一些轨迹聚类的基本方法,涉及轨迹距离的定义、kmeans聚类应用。需要使用的python库如下import pandas as pd
- TensorFlow从txt文件中读取数据的方法很多有种,我比较常用的是下面两种:【1】np.loadtxtimport numpy as
- 有的小伙伴在学习数据库的时候,创建表结构的时候不小心把某字段设置成了varchar但是在统计求和的时候就傻眼了,接下来跟着小编学习一下,不用
- 引言层次聚类是一种构建聚类层次结构的聚类算法。该算法从分配给它们自己的集群的所有数据点开始。然后将两个最近的集群合并到同一个集群中。最后,当
- 本文实例讲述了JS仿iGoogle自定义首页模块拖拽特效的方法。分享给大家供大家参考。具体实现方法如下:<!DOCTYPE html