不!警察叔叔这个坑不是我挖的,我只是填坑的雷锋啊!
最近几天,都在讨论bg的账户体系。虽然我之前大约出了方案和页面,然而最终还是花了不少时间讨论细节。究其原因,一方面是帐号系统本身麻烦点,另一方面归功于某未曾谋面的ex产品给我们挖的大坑
事情是这样的。早期这个软件的注册方式是:邮箱注册和用户名注册。用户名的规则规则呢?——进来的用户可以输入一个用户名,然后输入密码完事。——这种注册方式缺陷是:有些用户用着用着就忘记自己用的什么用户名了,于是这个帐号就烂死在那儿了。(比如之前安智网的帐号就这样——最后我把邮箱翻个底朝天然后从邮件里找到了注册时用的用户名)
这种方式在七八年前也许还是正常的,然而后来有了第三方登录,有了绑定手机提高安全性等方式之后。第三方和手机号慢慢成为主流。(所以其实有些不解为什么bg早期还有用户名注册这种奇葩啦)。用户也慢慢习惯用手机或者邮箱作为登录时的帐号信息,于是今年五月我在看后台订单的购买方式时,也看到各种奇怪的用户名,英文的、拼音的、手机号的、邮箱号的
于是这帮用户名注册的用户就成了我们最头疼的麻烦。
首先,这种方式可以注册无限小号,来刷优惠券,囤货之类
其次,这种方式注册的,(由于我们没绑定手机)一旦忘记用户名什么的,就不知道怎么进来了。不管是从用户的体验来说,还是对客服造成的负担来说——都呵呵
最后,由于用户名注册时,对用户名并没有做限制,因此有些用户用了手机号或者邮箱地址作为用户名。但是登录时输入框里是邮箱、手机、用户名都可以填写的。程序们比较侥幸就索性是拿这个帐号密码去配,如果有就通过(漏洞是:万一都是帐号a,密码b就玩玩儿了——虽然这个概率倒是也不大)
所以,用户名算一个坑,
【坑1】:用户名注册
【坑的方式】:不方便记住、不方便找回
【结论】:与时俱进,在两年前哪种第三方登录遍地走、手机注册也不少的时候,也该多考虑新事物放弃老事物了
【坑2】:用户名注册时对格式没有限制
【坑的方式】:①导致后期的登录时输入一串手机号数字但系统不知道输入的数字是手机号还是用户名的问题 ②其他可能后果:用户在注册时使用了特殊字符,后来换手机换输入法然后半天找不到那个特殊字符 ③其他暂时没想到的东西
【结论】:通过限定的流程或者条件,来限定用户的行为,从而产生更少的用例(或者不同的情况)——这样,一方面是开发人员的工作量更小,另一方面如果情况变化需要调整系统时,所需要兼容的老数据也更少。
【坑3】:规划手机号注册时,使用手机号作为id了(确切来说:作为唯一标识)
【坑的方式】:①以前用户名注册时用的,用户填写的用户名有使用电话号码的(因为坑1:没限制 格式),所以有一定几率重合 ②用户更换手机号的时候,因为id是唯一标识不变,所以换了手机号之后id没变。老手机被运营商回收之后,新买到号码的人就会发现自己用不了了——因为id还被占用着,只是该id绑定的手机不同了而已。。。
【结论】:
①当在一个输入框里,允许了n个不同字段,那么这n个字段要做到不重复(确切:历史数据和可能产生的新数据不重复)
②对于可回收的东西,要考虑因为回收这个特性带来的问题。
最终的总结:
1.参照以下主流应用的方式(因为这些应用可能培养或者改变用户习惯)
2.如果可能出现多重情况,尽量列举情况并限定,不要自己给自己挖坑
3.保留历史数据——至少是在后台。不然以后就不好查了
4.备份的数据,或者修改记录一类,在考虑数据存放时,一方面考虑不要影响现有数据的统计(主要出现在数据copy的情况下),一方面要考虑能在后台保存(方便追查责任,也方便统计)
ps:在帐号合并时,我最初提议是可以选择在前台将两个账户绑在一起。大家说诶eleme不是这么干的啊,人家如果某帐号已经注册就不能绑定了除非解除绑定——想想的话,我这就是在给自己挖坑了,因为把合并帐号放到前台后,合并帐号的人必然增多,于是有增加了一些风险:手机被别人拿走之后,自己的帐号被别人合并走了。。。。睡一觉起来帐号被别人拿走了。。。。等等奇怪的问题。嘛,干嘛要给自己挖坑呢?)——限制,有时候是为了不被更多的麻烦的用例所困扰的说
网友评论