关于流畅用户体验的思考


周末无事做了个简单的OCR小工具――从文本截图中提取和识别字符。处理对象是标准字体的图像,没有OCR通常要面对的光照,破损,扭曲等问题,几乎不用任何预处理,因此算法是简单明了的:先二值化,横向纵向投影分割字符,再用模板匹配进行字符识别。因为打算做成一个可用的工具而不仅仅是算法仿真,所以没用MATLAB而用了Xcode+openCV。安装开发包,配置工程,理解调用接口消耗了大部分时间,真正投入在核心实现和调试上的时间并不多。换作MATLAB,可能半天就搞定了。

对于MATLAB,一切都是说走就走的,不用建立和配置工程,不用包含各种头文件和库路径,不用管图像格式,不用担心数值溢出,更不用考虑内存管理,写完代码直接运行,MATLAB想产生的效果就是:你的大脑怎么思考算法,你的手指就可以怎么敲代码——所谓得于心而应于手。而以openCV为例的C/C++开发,在实现核心算法的过程中,你还需要考虑为了支持业务功能引入的其他需求,例如,在精心实现图像边缘提取算法的同时,你还得仔细考虑另一个领域的问题:需要哪些缓存,以何种粒度缓存,哪些缓存可以共享,什么时候申请释放。核心算法的思考和编码过程时不时被非核心任务所中断,思考和编码的连贯性受到影响。MATLAB提供了可以让思考和操作无缝链接的环境,相比之下,C/C++这种偏底层的语言则很容易让开发者处于“多线程”状态。

当然,对于熟手,处理openCV带来的这些额外的事情自然是驾轻就熟,内存管理这些事对C/C++开发人员来说是再熟悉不过的。不过这里并不打算讨论MATLABopenCV孰优孰劣,这两者一个用于仿真,一个用于产品,本来就是各擅胜场。这里的重点是由两者之间的差别引申而来的关于用户体验的思考。

开发工具,社交应用,游戏,手机,只要是和人有交互界面的产品和服务无不强调用户体验,构成良好的用户体验很重要的一个方面就是“流畅度”(游戏除外,那是一个充分呈现人性复杂度的领域)。“流畅度”包含这几个方面:

1.思维和操作的无缝链接。软件/应用提供的操作语言和用户的思考语言一致,在用户打瞌睡时送上枕头,使用户的思考和操作过程不受非相关操作的中断。例如,在思考和实现一个人脸识别算法的过程中,如果被迫穿插着对文件格式、内存管理,数据位宽等非核心需求的思考,效率无疑是低下的,流畅体验也无从谈起。所以,好的工具,如MATLAB,应该屏蔽非核心任务的干扰,至少应该允许用户对核心和非核心任务分开考虑,使用户在一段时间内只处理一项任务,减少中断和切换。

2.反馈/响应符合用户预期,契合用户思考路径。例如,手指滑屏时,屏幕滑动与手指移动的方向和速度应该是完全一致的,这是和用户的生活经验相匹配,从而产生流畅感。假如手指向左滑动而屏幕滑动速度没跟上或方向不匹配,则会显得突兀,超出用户经验,使用户产生思维停顿,这就破坏了“流畅”感。至于用户的预期和思考路径,不仅仅取决于用户在本领域已有的经验,也受到从其他领域迁移而来的普世经验的影响。

3.通感的辅助。以手机为例,流畅不仅仅意味速度够快,还可以包括:视觉-画质,滑动响应等;触觉-手机材质,按键反馈等。通感的存在充分体现了人类感觉的复杂和丰富程度,这是一个目前尚待发现的领域,相信在这方面存在大片远在人类想象之外的异域空间。当然,这一点本身并不会直接影响生产效率,但人的感觉会影响其生产效率,从这个角度讲,流畅度既是一种主观感受,也体现了客观效率。

总而言之,流畅的体验——尤其是对于影响生产效率的应用而言——是全方位的无阻滞感,所行即所思,所得即所行。

 

实现流畅用户体验的关键点包括:

1.挖掘用户的思考语言,发现其思考路径;

2.使用户处于“单线程”状态。

显而易见的是,无论哪一点,都遵循“以人为本”的原则。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值