系统设计对容错和易用的平衡点

前言

容错和易用性,几乎是每个软件系统(或者实体的业务流程 / 操作步骤)都要考虑的问题。这两个属性因为系统涉及的行业不同,侧重也往往有所区别。

目录

前言

容错的大致场景

容错的应对措施

容错在用户层面的体现

易用性和容错的关系

容错的大致场景

先谈容错。容错包含系统交易层面的容错,以及用户操作层面的容错。容错的出发点是保证业务在一个出口出错的情况下,仍可以在别的出口完成这个操作。对于交易系统,容错可以表现为事务回滚、订单撤销、费用退款(打款)等行为。对于社交软件,容错可以表现为提示发布失败、内容暂存草稿箱等行为。

容错的应对措施

上面讲的是一个出口出错的情况下,系统应有的一些应对措施。下面我们探讨下在别的出口如何完成这个操作。其实很多流程 / 软件设计都是单向前进的,一旦出现错误则必须逐级回退 / 将所有相关输入文档和单据重做。如果是不涉及源头数据出错(比如采购用的立项一开始就选错了费用类型)、而是中间处理出错(填错了金额和数量),就应该只指定中间处理出错的人员和环节进行更正,就继续操作。如果是源头出错的情况,应该给出需要修改哪些内容的提示、进而重新指引用户进行操作。

容错在用户层面的体现

除了系统交易层面的容错,还有用户层面的容错。比如输入搜索框,支持模糊搜索和查询结果的选择。比如数字输入控件,限制用户只能输入一定格式的内容(电话号码、邮箱、银行卡号等)。

易用性和容错的关系

再谈易用性的问题。其实易用性是用户习惯堆砌出来、不是靠设计人员 “想” 出来的。易用性的选择里面,同时包含了用户出错最少、出错最多的场景。针对这些场景,梳理他们的作业顺序、输入和输出依赖的关系。再根据梳理的关系,解决最容易出错的情况后、基本可以得到易用性和容错性并存的设计方案。

小结

容错和易用性是系统 / 业务流程一棵树上的两朵花。很多看似为易用性服务的设计和思路,实质是为了容错。而基于保障业务各个环节、多种情况下的使用情况,并解决最容易出错的场景,就能够得到易用性和容错性并存的设计方案。

(完)

你可能感兴趣的:(架构与项目形态,java,开发语言)