搞定异常的七字真言:增删改查显算传

AI时代,如何更快入行抢占红利得高薪?前阿里巴巴产品专家带你15天入门AI产品经理。了解一下>

本文结合具体的案例进行分析,分享了如何运用搞定异常七字的真言——增、删、改、查、显、算、传。

异常是大多数

1.什么是异常

是程序运行中,因外部因素(设备错误、输入错误等)导致的程序异常。逻辑层的程序异常,通常是产品经理的责任。

2.粗略判断异常是否完整

一个带有输入、输出、传输、运算的完整功能模块,产品经理出的原型图中,如果异常情况的页面没有占到70%,那就需要继续完善

3.举例——昵称为必填,且不能重复

只有结合产品、用户、场景,才能做出合理的异常情况。举例仅供参考。

(1)昵称输入有误

然后在 Axure 中对应元件上写说明内容,如下图:

(2)昵称被占用

同理,在对应元件上写说明内容,如果是移动端原型,可在旁边放便签描述(另一篇《完美"登录",从去掉"注册"开始》中有附图)。

以上提示,只是局部提示。根据场景不同,还会有关联性异常情况。

比如在填写时,昵称尚未被占用,填写其他内容过程中,刚好被占用导致最后一步无法保存,也需要处理。如果涉及到翻页情况,又会产生保存时机的问题。是点下一步就保存,还是最后提交时统一保存资料。如果点下一步就保存,那在第二步未填完就退出页面,又该如何处理。

因此,需要根据实际情况来处理异常情况。

排查异常的七字真言

七字真言:增、删、改、查、显、算、传

1.增:新增、创建、添加

开篇的输入昵称,就属于增。另外,还包括注册账号、上传图片等。

做【新增】功能时,从以下三个角度考虑

(1)上下限 / 建议值 / 默认值

  • 字数输入的上下限、图片/视频大小,前后端都做限制校验。(例:昵称限制4~10个字,前端需要校验,不在范围内不让提交。但是后端也不能相信前端,还需要自己再做校验,防止一些技术手段绕过前端给后端提交非法昵称。)
  • 图片/视频尺寸、图片/视频比例,给建议值。(例:下图头像项的图片要求)
  • 一些低频选项,可以给默认值,无需每次都操作。(例:性别默认男,城市默认当前定位点)

(2)类型校验 / 格式校验

  • 例如:输入类型的全角和半角,可做自动转换提高体验。
  • 导入表格的功能,那就限制只能上传Excel格式的文件。另外,.apk、.exe等可执行文件,需要特殊处理,微信会加后缀,来降低风险。

(3)容错机制 / 关联变化

  • 手机号已被其他账号绑定,需让用户可做更换绑定、合并账号等操作。
  • 昵称被占用,给多个建议昵称,让用户手动选择。
  • 自动保存为草稿、编辑状态下阻止浏览器关闭等。
  • 自动生成编号、排序方式,关联出现的状态,及页面变化。

以上,有些限制是出于产品体验考虑,例如图片过大,会导致浏览时加载慢影响体验;有些限制则是出于安全考虑,例如不能上传可执行文件。

一些低频问题,尽量静默处理,例如:

  • 非网盘类应用,自动压缩太大的图片。
  • 邮件发送APK、EXE类可执行文件,无需加后缀。
  • 及时通讯软件发送则加后缀,但能通过安全扫描的也可以不加。
  • 手机端选择年月日时,给合理的默认项,比如1990-06-15,6月是月份中的中位数,能快速定位到1到12月任意月份。15日同样是中位数,能快速定位到1~

总之,一切围绕用户体验去考虑,使用体验、安全体验、设备体验等等。

小思考:假如你是支付宝产品经理,在PC端做人脸识别认证的时候,你会怎么做?如何考虑?

2.删:删除

删除操作比新增操作风险大,但逻辑相对简单,有以下四种情况

(1)删除是否可逆

  • 需求上可逆、需求上不可逆
  • 逻辑上可逆、逻辑上不可逆

(2)是否批量删除

(3)是否涉及权限

(4)逻辑删除 or 物理删除

  • 逻辑删除是通常说的假删除,给一条数据做了个标记,其实这条数据还在数据库里;
  • 而物理删除是指从数据库里真实删除了某条数据,常规意义上是不可恢复的。

如上图:

  1. 弹窗一,单个删除操作,逻辑上可逆,但用户体验上不可逆,所以需要二次确认。
  2. 弹窗二,既属于批量操作,也属于权限操作,需要高级别权限人员扫码确认。扫码后,手机端的确认页面上,需要展示一些重要信息,方便高权限人员做决定。
  3. 二次确认方式:弹窗确认、弹窗扫码确认、弹窗密码确认、弹窗验证码确认、弹窗指纹确认等。

如上图:在重要的删除操作时,增加【影响范围】,说明当前删除操作可能会影响到的地方,如果这种影响是需要手动解决的,就需要去逐一排查。比如删除之后,榜单是不是空了、满减活动是不是凑不够满减额度了、轮播图上展示的还是已删除的商品、定时推送发出去的链接打开却告知商品不存在,等等。

总之,删除有风险,设计需谨慎。不删可以,就别做删除功能。后台产品,可在筛选区域或系统设置中加个【展示已删除xxx】的复选框,勾选之后,才在页面内展示已删除的信息。至于能否恢复就是另外一套流程和逻辑了。

3.改:修改、编辑

参考【新增】的一些规则,很多页面可以复用【新增】的页面。但新增员工类涉及密码的,复用时需去掉密码输入框。

需要注意两点:

(1)能否修改

  • 用户ID不可修改。
  • 用户状态,需要有权限的人才能修改。

(2)保存机制

  • 定时保存。
  • 失去焦点时保存。
  • 其他条件触发,比如网络变化等。

4.查:查询、搜索

两种:

(1)查询

  • 实时查询,用于小数据量场景。
  • 定时任务查询,用于数据量大,关联表多的情况。历史数据直接读取已经查出来的数据,避免每次查询都是多表联查,可提高查询速度,降低服务器压力。
  • 查询频率,多长时间查一次,根据情况定义。
  • 查询速度,查询速度慢的,需要优化。

(2)筛选 / 搜索

  • 多条件组合筛选
  • 模糊搜索、精确搜索
  • 可搜可选

举例解释(后台):

A实时查询:柱状图显示今日新增用户,直接查询即可,每访问一次或刷新一次页面,就查询一次数据库。

B定时任务:表格内展示今年新增用户数量,并展示对应的订单状态、物流信息、会员信息、标签信息、活跃情况等等。

查询时需要跨数据表联查,比如先在用户表查出今年新增的用户的ID,然后分别用用户ID去订单表、物流表、会员表、用户标签表中,查出对应信息,然后用表格呈现出来。这种情况,就不能用实时查询了,服务器一次性跑不来一年的数据。

所以就用定时任务查询,定时(如每天查前一天的上述数据)查一遍,并记录下来,当有人访问该表格时,无需联表查询,直接读取已经记录下来的数据并展示即可。

C多条件组合筛选:比如筛选性别为男/分类为老年人/2019年已体检的人员列表。

D模糊搜索/精确搜索:如字面意思。

E可搜可选:比如有个下拉选择框,里面是城市列表。在使用时,有时你是知道城市名,可以直接下拉展开鼠标点选。有时你不知道城市名,或者太多一时找不着,那可以在下拉框里直接打字输入,下面就会展示对应城市,回车或鼠标点选即可。

因此,当开发皱着眉跟你说,这个表格字段太多,查询会卡死服务器,你就说:跑个定时吧,亲~

作为一个产品,写涉技术文章,我好难啊…我知道的就这么多了…

5.显:显示

其他六字都服务于【显】字,是七字真言的舵手。【增删改查算传】都通过【显】与用户互动。

用户对所使用的产品的一切感受,也都是通过【显】感受到的。

甚至可以说,【显】就是产品经理的一切。用户在使用的过程中,出现误解、不会操作等情况时,产品经理没法去解释去帮助,所以在交付给用户之前,就要尽量把所有异常都做处理。

简单总结几个重点: