工作失误总结
1)判断用户当天是否领取礼包
由于TTC的数据排序设置问题,未能将最新的领取记录取出,用户只要之前领取过礼包,该用户当天的领取礼包逻辑判断将始终为假。这样用户将无限制领取礼包。
2)用户输入非法参数
由于逻辑上一个gift_id对应一个item_id,该两个ID指向同一个物品。用gift_id进行合法性判断,而item_id进行物品操作。用户传入非对应的的gift_id和item_id进行物品操作.通过变换不同的gift_id,操作同一个item_id物品。
3)版本控制问题
代码刚被开发出来的时候是正确的,后来正确的逻辑代码被注释(判断礼包是否已经被激活)。 要命的的是想不起来自己什么时候进行的代码更新。如果严格按照版本控制进行代码管理,就可以查到自己代码的更改记录。这也是一个教训。
4)兑换激活码并发问题
之前对并发的估计不足。认为程序在一瞬间执行完。其实当机器的负载和网络不是通畅的时候,并发的问题非常常见。用户通过多开浏览器,短时间内发起大量兑换激活的操作。通过memcache锁来解决。(本质上是一个全局锁)
上述是自己工作中遇到的一些问题和失误。这些失误比较具有典型性,希望以后能够牢记并编码类似的错误。跌倒不可怕,可怕的是在同一个地方跌倒两次。