2009年4月4日星期六

FreeRange story - 确认无用,恢复万岁


FreeRange user yuebai li wanted you to see this:

"确认无用,恢复万岁"

原作者:David S. Platt
原文链接:To Confirm is Useless, to Undo Divine
译者:红Archer | 推荐人:gaobaba

确认过程的常见用户交互技术是弹出一个对话框到你鼻子底下,问“你真的真的 确定要这么做么?”这种方式极不友好,会分散注意力,而且完全没有效率,是邪恶的。无论何时何地,都不应当存在。

你是否曾经有过,哪怕就那么一次,说:“哇,我不想那么做,谢谢。”然后点“取消”?或者你看到任何人那么做过么?反正我从来没有过。确认操作被严重的滥用,不客气的说,它已经完全失去意义了。因为弹出对话框反复的发出“狼来了”的警告,没有人会认真对待它,即使有时你真碰到需要取消的时候,也会习惯性的点到确认上去而不自知,它没有提供给你任何安全。

生活中的操作从来不需要确认:当你旋转钥匙的时候,汽车不会问你:“你真的确定想要启动引擎么?”当你在超市把东西堆到柜台上的时候,收银员不会问你:“你真的确定想要买下这些东西么?”程序员无休止的提出确认询问因为他们认为用户不懂这些操作的后果,这或许有点道理。但确认过程并没有解决这个问题,如果用户不知道操作会产生什么样的结果,当看到确认框的时候,只会使他们更加迷惑。与期望的相悖,确认过程妨碍了程序员向用户更加清楚的操作的含义,或者并提供一种恢复方式代替开始的确认。

如果用户真的弄错了呢?如果你把一个手电筒与它不能使用的型号的电池放在收银台上,收银员并不会问你:“你确定么?”一个良好的用户界面应该能够通过不让问题产生来防止搞错。或许在手电筒的销售页面下应该有个默认为勾选的选项,写着“内含电池”。更好的主意是,手电筒内自带电池,拆封后就可直接使用,永远不用担心买不到合适的电池。

我们不需要确认的另一个理由是开车和买东西都是可以恢复的操作:你可以将钥匙旋回来或者将不要的东西退回。程序员经常在程序中提供恢复功能,这是自鼠标发明后最伟大的进步。为了实现这个功能付出了大量的努力,用户不需要关心它内部是如何实现的(知易行难)。每一个实现恢复操作的程序员都是用户的好朋友,如果碰到他们,我会为他们买杯啤酒。

最坏的确认过程是那些可恢复的操作,例如移动文件到回收站中。相比于生硬的弹出一个确认对话框(往往被习惯性的忽略),花心思在如何防止用户的误操作(比如鼠标一滑,点到了不应该删除的文件)上可能更有用处。一分治疗胜过五十分的预防。

恢复的美妙之处在于它允许用户探索一个程序。通过菜单和工具条上的图片搞清楚一个新程序的功能并不是那么容易的。有了恢复功能,用户可以尝试每一条命令,不用担心造成任何破坏。程序员往往粗暴对待用户犯的低级错误,认为他们应该先去读读说明手册。这是不对的。通过尝试学习新知识是一种基本的学习方法,程序员应该认识到这点,并为程序提供恢复功能来支持用户的这种学习。

如果恢复功能实现正确,整个系统只会有一个破坏性的操作:清空垃圾箱。有人说这个操作应该有一个确认对话框,就像现在这样。但即使在这里,确认对话框的用途只是为了防止另外一个不好的设计:菜单中“清空回收站”和“资源管理器”的位置靠的很紧,鼠标有可能会误操作。这样的设计是不好的,“清空回收站”应该有一个独立于其他操作的功能,比如在按下某个键的情况下点击图标。更好的方法是,回收站应该每过段时间就自动清空内部的文件,所以就会很少需要手工清空它。不需要询问,只需要原谅。提供恢复功能,舍弃确认过程。

添加评论

译言 - 编辑荐读

FreeRange WebReader - bringing the Internet to your mobile phone like never before!

Reading this on your Windows Smartphone, Palm or Blackberry? Try it now by clicking http://mwap.at

Posted via email from liyuebai's posterous

没有评论:

发表评论