防御性设计(Defensive Design)-乱搞也不出糗的设计品质!

0

所谓的防御性设计(Defensive Design),指的就是当你所设计的产品因为某些非预期的使用 (如:使用者的误用、系统或其他外部因素…等) 而造成错误时,你的产品也能有效的提供设计回馈,让内心纤细敏感的使用者不会突然受到太多惊吓。

莫非定律说:凡事有可能会出事的,它就一定会出事。是的,只要是人为设计的产物,都有出事的机率,有天它心血来潮就会在客户面前挫屎给你看。所以我想,无论你是设计师(Designer)或是开发者(Developer),应该多少都要把莫非定律放在心中,尽量想着怎么样让你的产品在出事的时候,也能有帅气的姿态。

defensive_design

要针对出事的情形进行设计不是件简单的事,首先你要发挥柯南的精神,找到出事的情况。对软件开发或测试有些经验的朋友,大概都听过「Monkey Test」,顾名思义就是找一只猴子来玩弄你的设计…(误)。

Monkey Test 不是找猴子,但意义很像,一般是设计一个小程式,在你的软件画面上摸拟疯狂失控的操作行为(乱点、乱移、乱x…),接着看你的软件能不能承受这种极端的操作,若不能顺利透过,也可以取得引起失败的历程资料进行分析,进而改善。

今天在Smashing Magzine网站看到一篇 Getting Started with Defensive Web Design,列出了一些网页设计的防御性设计议题,在此节录一些出来聊聊:

1. 辅助说明(Contextual Help)

有别于像Monkey Test这种活动能找到的问题,还有比较像是心理认知层面的问题,例如你现在看着这篇文章,心中想着「你到底在写什么鬼呀? 我要怎么离开这个页面去找一些技术文章来看?」或者「怎么我点了这个连结,不是到我所想的页面呢?又要回上一页吗…」…等,这类问题也许就需要适时的一些辅助说明来帮忙。

2. 针对缓慢的连线状况进行设计

你的使用者有时也许连线速度太慢 (或使用文字浏览器),图片也许都无法读取了,这时候你的网站会不会因此产生了大量的「留白」,让使用者无法使用网站的服务呢?如果一个网站缺少图片,就无法取得任何有意义的资讯,其实是很可惜的。这是可以避免的情况,所以何不放进你的设计守则里?

3. 提供站内搜寻

如果你的网站规模只在五、六页,那你也许不太需要担心这个;相反的,规模大于五、六页,做一个站内搜寻的功能则是基本常识。如果是更大规模的网站,那可能需要更进阶的站内搜寻引擎,像是有子分类搜寻、针对拼错字重新建议关键字、找不到东西时指引其他方向…等。甚至还有更绝的,让使用者编辑搜寻结果,藉此改善该组关键字的搜寻品质。

4. 表单验证及错误处理

关于设计表单验证的基本原则是:不要相信任何使用者输入的资料,你可以在心中把使用者想成是猴子,也可以想成是恶魔。错误处理则是想像使用者的手残机率破表,或者想像他是调皮的小朋友,不按牌理出牌。

就因为是猴子、恶魔、手残、任性小孩,所以你要好好防御,像是要设定极端的输入范围(有上限、有下限、有字节限制、有数字限制、不能空白、不可以是HTML!),而且你要有人性一点,语气尊重还要奉上温柔提醒~ 像是:「您真的想要不存档就离开吗?」、「您真的要删除吗?」、「提醒您,有红色星星一定要填完才能送出哦~~」。

5. 404页面错误(找不到)

预设的404页面错误很容易吓到一般的使用者,或者伤害到他的自尊(我弄坏了,我怎么这么笨…XD)。关于404页面的定制化,很容易就能找到很多设计范例,像是这里有50个例子,有创意当然很好,但个人觉得要跟原本的网站有一致性,不要跳Tone跳太大。

另外,使用者找不到东西,除了看到404讯息外,最好还能猜猜他真正要的是什么,或者至少提示下一步要点击哪个链接比较好。

6. 500服务器错误

500服务器错误的页面设计比较少,这样的服务器错误,通常表示网站整个挂点了,所以也没办法再提供一些后续的站内资讯,除非有备用站可以导向,或者留下连络用的E-mail连结,让真的有事找你的人不会断了连络。

7. 侦测防御性设计的漏洞

现在有很多帮助网站维护人员分析网站状态的工具,而且免费的就很专业了,像是Google Analitics、Google 网站管理员工具或一些付费服务。利用这些工具可以分析使用者使用网站的情形:能找出死链(Broken Links),让你可以快点修复;能观察使用者的跳出率、停留时间…等。

一般来说,要把防御性设计做到一百分很难,但要提升网站的使用品质,这些都是应该注意的项目。

发表评论

您的邮箱不会公开,当您的评论有新的回复时,会通过您填写的邮箱向您发送评论内容。 必填字段 *

为何看不到我发布的评论?

正在提交, 请稍候...