说明

参考流程图:

image.png

在一个账单的管理系统界面关于二维码,原来的交互逻辑是判断二维码是否生成过,然后给不同的操作选项:

  • 没有生成过:选择生成二维码
  • 生成过:可以选择直接查看二维码还是重置二维码

缺点是:

  • 这个二维码是用户必然需要的,所以这个生成二维码的交互很啰嗦,应该直接为用户生成好,参考支付宝付款码的逻辑。而且这个二维码是一旦生成就不会再有生成的操作,属于低频一次性的事件,更加建议生成好。
  • 生成过的二维码直接操作有查看二维码和重置二维码,其中重置二维码的操作属于盲点操作,用户在无法查看二维码信息时无法确定是否需要重置。

改良之后:
简化用户操作,用户只需要关注这个账单的二维码是什么,在查看二维码基本信息后,觉得不正确或者不是最新的,选择重置更为稳妥。

流程图地址:产品交互逻辑流程图

扩展

由此,我联想到后端在设计相关增加数据的操作时,需要一个唯一id,如何提升性能的同时保证唯一性。(假设是分布式的,查询全部库中是否有某条数据是浪费性能的)

如果每次直接插入,会因为插入重复的导致错误;
如果每次先查询是否有,没有再插入会导致性能降低。

对此,可以同样如此操作,先去尝试直接插入,如果成功就成功;如果失败,说明已有该数据,创建一个新的唯一标识。