标签:分享图片 空校验 变化 http 消费 出现 kotlin 故障 com
关注公众号且没有手机号的微信用户收到非本人操作的充值消费记录
原因分析
访客功能之前,会员的手机号是必输的,因此之前的代码都是在会员手机号不为空的前置条件下开发的,所以没有加对手机号是否为空校验。访客功能上线后,会出现会员手机号为空的情况,造成对之前代码的前置条件造成破坏,又没有对这部分代码进行问题排查,流程中允许了根据空手机号查询微信用户信息,将没有手机号的会员的充值消费通知发给了数据库里不匹配的空手机号的微信用户,形成了上面这个bug.
代码示例
1.代码规范前置条件注释,无论是一人还是多人都会有很好的提示作用
2.代码规范在被调用方法自身要保证自身参数没有问题,尤其是在操作数据库之前
3.代码规范post 必填参数检查
4.代码规范必输参数变为非必输的时候,需谨慎
6.代码规范参数或条件限制变化时做全局处理
7.代码规范系统外的数据不可信,系统内数据也不可全部相信,要有内部的检查,对外暴露的public方法,要保证自身参数没有问题,加相关逻辑校验。
8.触达用户的渠道需要控制,如通知消息,push。todo 发送的log/随时可中断/事后上报/检查/业务约束加入自动检查(例如预约不可能连续发送多条,那么就可以检查这种情况进行报警处理)
9.考虑业务参数条件改变,需要检查所有相关业务,怎么找全是一个比较困难的问题,java中并没有比较好的方法来做这件事情,所以计划将迁移到kotlin,使用option来解决这个问题
标签:分享图片 空校验 变化 http 消费 出现 kotlin 故障 com
原文地址:https://www.cnblogs.com/xiangtingsulinlin/p/9337360.html