记实际开发中遇到的重大失误

2019年03月23日22:03:50

今天周六,app版本更新,于上周写了一个新的签到功能,7天一个循环,初始积分及累计签到赠送积分要求可配置,并每天在签到成功后推送一则笑话,功能不难,也很快就写出了对应接口,但这个新的接口是我直接修改了原有的接口,没有正式发包之前,并没有什么问题,测试包括我都没有测出什么问题,但最后发包的时候,因为安卓和苹果的版本不一样,苹果需要一个审核,加上我是修改的原有的接口,这样就导致了,线上的IOS端的app签到出现错误,因为原有接口被我替换成了新的接口,所以原来的签到判定条件跟我现在的判定条件不一样,所以,出现了一天可以签到2次的情况,这个情况的出现,是自己疏忽了苹果和安卓端版本不一致的原因,更是因为自己图方便,直接去修改了原有的接口,没有新增一个接口导致的,如果上述原因注意到其中任意一条就不会让今天这种情况发生,并且在后续的修改中,让ios端恢复调原有的方法,更新之后再调新的方法,但还是出现了问题,问题在于老版的签到功能签到之后的记录,和我写的新版的记录,当时另外一个接口需要一个返回字段,是否签到,我是根据是否有积分记录来判断的,但这个地方就出现了一个问题,之前的老版本签到成功后也是有签到记录的,当再用新版时,签到功能就不会生效(按程序的正常逻辑来说,这时应该是生效的)所以,在判定是否签到时,除了根据时间来判断更严谨的方式是获取到记录中扩展字段中的值,这样就能保证不会出现问题.在以后的开发过程中,一定要注意这种问题.确保下次不会再犯,要对程序怀有敬畏之心.

第二个问题是,在维护之前的基金项目时,因为当时编写的代码过长,并且编写时,犹豫不定,随意使用变量,某一方法的关键判断条件没有明确,在不同的地方使用了不同的判断条件,导致后期维护艰难,看代码的时间占了大多数,极大的浪费了开发的时间和效率.

对于以上两个情况,从中吸取的教训有:
1.开发时,明确接口的使用,能不修改原有的接口就尽量不去修改原有的代码,因为并不能保证修改之后会不会出现问题,尽量自己新写接口去完成需求.
2.保证开发时,多思考,多动脑,再简单的程序都不要轻视,不能自己觉得可以就去做,要在符合整个业务逻辑的情况下开发,尽可能的仔细考虑到每一种情况
3.当一段代码的逻辑过于复杂,一定要注意方法的抽取,分割代码,针对不同的情况,分成不同的模块,切记不要在一个业务逻辑里写超级复杂的方法,这样不利于后期的维护.
4.写代码时,关于方法的抽取,在编写的过程中,可能会出现代码逻辑的重复,当出现这种情况时,停止开发,仔细的思考两段代码通过抽取,能否实现方法的复用,这样不仅提高了代码的阅读性,更方便了后期的维护,争取一个方法不要超过80行!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章