新浪博客 新浪博客 > sunlinepsy的BLOG >  正文  打印

从分布式认知的观点看Visual Studio 用户体验的改善


http://blog.sina.com.cn 2006年03月22日18:33 sunlinepsy
标签:
 

    这个题目“学术”了点。什么是“分布式认知”?我想大多数读者不希望得到“学术”的回答,还好,有个例子大概可以说明“分布式认知”的含义。
    34*24=?这是随便列出的一个乘法,要得到结果,大概有这么三个办法:“心算”、在纸上列乘法竖式、用计算器/机。得到结果的速度就不言而喻了。我们看到,同样一个目的,第一个办法完全是用人脑在进行内部运算(期间人脑要记住运算的中间过程),而第二个办法借助了纸笔将运算的中间过程记下来(这样人脑就无需记住运算的中间过程),而计算器/机只需要我们输入算式,省去了我们运算和记住运算的中间过程步骤。运算(人脑的思维)和记忆属于认知的范畴,而我们是不是可以说,从“心算”到“纸笔竖式”到“计算器/机”,本来需要由人脑完成的认知过程,逐步被“分布”到人脑之外的“环境”(纸笔或计算机/器)之中去了?这就是“分布式认知”的一个实例,而认知心理学和人机交互研究人员研究“分布式认知”的目的,就是要理解,人的哪些认知过程可以“分布”到计算机或其他设备环境之中去,“生性懒惰”的人类便可卸下负担,去做那些更重要的事情;而哪些过程只能通过人类自己的大脑运转来完成。
    回到主题,我们来看看Visual studio的三个版本:6.0, .net 2003, .net 2005。懂得“人往高处走”的道理的人不用亲自体验,也会“相当自信”地懂得“版本越高、用户体验越妙”的道理(废话)。那么,微软做了哪些方面的改进,能够让某些程序员“爱死2005(网上摘)”呢?
    这里我斗胆将“分布式认知”作为放大镜,来浅显地分析一下微软visual studio在用户体验上的某些方面的改善。

1、增加语法记忆功能
    作为VC程序员,你有没有在写if…{…}else{…}时经常忘记写大括号的其中某一边(“{”或“}”)?在6.0里,出现这种情况,虽然程序会提示错误,但你总是要改过来,总是要记住很多这些语法规则,免得出现一大堆错误提示而让自己尴尬。而在2003和2005中,这种情况能够得到尽量的避免,因为后两个版本能够“记住”你所写的程序是什么样的语法规则,如在你写入程序的一部分时(如“if{”),它们会自动地为你加上“}”。语法的记忆与自动加入的功能是不是让你省去了很多心思去记忆一些枯燥的语法规则,而让你全神贯注地关注于你的程序逻辑?哈哈,这就是说,本来由人脑来记忆的语法,被分配给了计算机,你在学语言的时候就可以“懒”一下了。我的一个做VC教学的朋友跟我说出了她的担心:这样的话,我的学生岂不会不知道vc的语法规则了。不用担心,其实编程中,逻辑设计远比记住什么语法规则更重要,而且我们每次使用“if{”时就会出现正确语法的提示,于我们对语法的了解,不也是一种强化么?

2、变量名称记忆的功能
    在coding时,程序员会定义很多变量,于是就多了很多变量名称。在6.0或2003中,当程序员要使用以前定义的变量名称时,有时很难记住其全称,这是就不得不到定义变量的文件中找到那个变量名称,拷贝粘贴过来,这样做很费时间。相反,2005就做得很体贴了,只要你输入变量名称的头一个字母,2005就会立即有一个提示下拉菜单,你只要在里面选择你想要的变量名称就ok啦(这个blog不能贴图,不知道说清楚了没有)。2005里面的这一功能又省掉了程序员的大量时间和精力,我想就这一点程序员就够欢欣鼓舞了。(6.0和2003有一个辅助软件visual studio assist提供了这个功能,所以很多人在2005出来之前都用它)

3、位置记忆功能
    同样在coding的时候,程序员往往会不断地回到编过代码的地方查看代码是否写得正确。在6.0中,没有对程序员查看代码的轨迹进行记录,而2003和2005中有。这能让程序员能够轻松地返回到他原来查看过的地方,以及在两个查看的地方来回切换,这给程序员查看和调试程序代码带来了方便。

    以上三个例子都反映了微软在改善用户体验的过程中,以减轻用户认知负担为念的思想。我们不必为微软歌功颂德,但这是否也可以引起我们的借鉴,来设计的时候,拿“分布式认知”这一面镜子,照一照自己的设计,是否把不必要由用户来承担的认知负担“分布”到你设计的产品和环境之中去,“解放”一下用户呢?


文章来源:http://blog.sina.com.cn/s/blog_48ee85200100028f.html