前两天接了一个小需求,在一个后台系统增加一个搜索项,在输入框输入银行卡号,匹配到有该银行卡号的用户,就显示用户的各种基本信息。
需求挺简单的,中心思想就是,库里有的能搜索出来,库里不存在的要提示用户不存在。
按我一贯的测试习惯,直接找了几个常用的测试账号,用这些用户的银行卡号放到输入框搜索,能正常显示出用户信息,换一个数据库中根本不存在的银行卡号去搜,提示用户不存在,看上去就没啥问题了。
但是等到线上验证的时候,却遇到了异常。用测试账号A的银行卡号去搜索,返回的却是用户B的信息,再仔细一看,B的详细信息中显示这张银行卡是已经解绑的。
答案很明显了,开发在写搜索条件时,没有限定银行卡的绑定状态。。。这个用户绑过这张卡,但是已经解绑了,是不应该展示的,我们更想查到的是当前绑定这张卡的用户。
通过这个事情,还是让我产生了很多思考。
看上去非常简单的功能,其实也要结合业务场景多多考虑。
如果是从abc defg中查出e,那自然少很多弯弯绕绕,但是对于另外一些,比如是查询用户的某个属性,匹配到后返回该用户,那就要考虑这个属性的状态,特征等,结合业务考虑。