为了减少踩坑,下面总结几个常忽略的异常。
01
多个同步操作
同步指的是必须要等待程序执行完当前步骤后,才能进行下一步。前端用户需要在当前页面等待结果的反馈。
在某些业务中,会有执行一个操作,后台执行多个同步步骤的场景。比如B端产品的添加用户以及勾选权限,后台会执行:
1)新增用户信息
2)给用户添加角色
3)给角色添加权限
以上三个步骤,如果执行到2或者3时出现了代码异常而中断了执行,返回给用户的错误提示,是统一使用添加用户失败?还是展示具体步骤的错误?这里每个步骤的执行代表的意义不一样,按道理每个步骤的错误提示是不一样的。
小结:在多个同步操作执行时,如果每个步骤执行过程中,其中一个步骤出问题,代表的意义不一样时,建议拆解出每个步骤的错误提示。
02
异步操作
异步指的是不需要用户等待后台返回结果,在后台处理完事务后以另一种方式反馈给用户执行结果的方式。消息反馈方式可以是后台主动push消息到前端,或者是以短信、发公众号通知的方式。
异步操作一般用于耗时比较长的操作,比如批量导入一个数据量很大的excel表格,后台大概需要10分钟才能处理完毕。
需要注意的是:
1、由于异步执行时,用户可能已经离开了当前页面,如果异步操作出现了异常,要有消息渠道能触达用户。比如批量导入excel表格数据,如果数据校验没通过,需要有站内信通知,或者其他的通知方式。
2、当异步操作大量数据出现异常时,要定好操作失败和成功的规则。仍以批量导入数据为例,如果出现部分数据校验通过,部分数据校验失败的场景,这时是直接返回操作失败?还是校验成功的部分直接入库,然后提示用户几条成功几条失败?
03
删除操作
删除操作是一个风险比较大的操作,处理不好可能会产生功能异常。当给开发提一个删除需求时,需要注意的是:
1、当你删除一条A数据时,如果有B数据对A数据有依赖该如何处理,是级联删除,把B数据也删了,还是当没有任何数据依赖A数据时,才允许删除A数据?
2、当用户正在操作时,某个数据突然被删除了,应该如何提示用户?
04
超时异常
异常分为以下2种:
1、用户网络信号弱
2、后台异常导致程序处理超时
用户有一定的忍耐度,等待时间过长是一种不好的体验。前端是可以设置http请求的返回等待时间,产品经理可以根据经验值给开发提需求。比如设置3s的等待时间,如果超过3s,后台还没有返回结果,则可以提示用户超时异常,请稍后再试。对于某些后台处理耗时较长的功能,可以转为异步操作。
05
多表关联
在提数据可视化需求时,表关联是很普遍的技术场景。如果2张表做关联,表A存在的记录,可能表B不存在,或者B存在的数据,A可能不存在。这时以哪张表为准就比较重要了。
举个例子:要展示小程序投放广告后某个页面的点击数据,有2张表,第一张是投放广告的信息表,比如广告名称,广告位置信息。第二张是每天的点击数据。由于广告的点击数据不一定有,但是广告信息肯定是存在的,这时应该以广告信息表为主。
06
浏览器不兼容前端特性
现在前端使用的许多UI技术框架,IE8以下是不兼容的。当浏览器不兼容前端使用的整个技术框架时,应该给用户一个优雅的提示,让他换一个浏览器查看。
以上就是“技术角度分析产品设计常忽略的业务异常”的内容了,如果你还想了解其他相关内容,可以来 产品壹佰 官方网站。