十年开发技术 Bug 总结,程序员经验分享

时间:2024-03-26 22:27:53

十年开发技术 Bug 总结,程序员经验分享

 

作为一名开发人员,项目出现 bug 是避免不了的。无论你是一名初入职场的小白,还是拥有经验丰富的大佬,只要经常写代码,梳理业务逻辑,很难免不出bug。正所谓常在冰上走,难免不湿鞋。记得以前经常听人说,如果你没有把系统搞宕机过,就不是一名合格的CTO,成为一名出色的开发人员,经验都是一个一个积累起来的。那么怎么能避免出现bug呢,写出没有问题的代码呢,我来分享一下我的经验。

一、需求

开始开发之前一定要先把需求搞清楚,不清楚的地方要和产品人员沟通,对产品设计有疑问的地方也要提出来,不能给问题留下生长的火种。

 

以前团队比较小,做项目都是老板提出需求,我们技术自己来确定方案。做技术久了,思维有时就会单一,不能考虑到不同用户需求和市场的思维方式,即使你觉得给出的是最优最合理的方案,当产品推出的时候会收到各方面的质疑,让你无法回答用户。比如一个下单按钮的设计,技术思维就会想如果你是合格用户,有钱,就会想尽一切办法让你下单成功,实现客户的愿望。但产品就考虑全面一些,即使你合格,有钱,还要考虑使用场景,是不是有效时间内,是不是第一次等多种因素。这样规范规定才能在有很多用户的情况下稳定的运行,每一个不明确的因素都有可能让用户产生疑惑,而给我们带来很多不必要的问题。不能考虑用户和市场的需求,那么技术也只能意淫了。

 

二、规划

对清楚需求之后,需要对开发的流程有一个规划,涉及哪些模块、用到那些知识点、有那些难点、对其他项目有没有影响、有没有特殊操作过的地方等需要对大致流程做到心中有数,最好把流程图画出来,能够提醒自己不至于忘记,对日后的总结也是一种查阅的纪录。

 

三、开发中常出现的bug总结

开发过程中难免出现问题,这时我们需要对bug进行归类总结,在下次开发中提醒自己避免出现同样的错误,我遇到过的错误以下这些

1. 业务不清楚,修改没有改全面

2. 做业务报表,分很多种,需要明确场景用到的哪一个数据源

3. 修改点要把涉及到的地方都修改

4. 特殊性,有些操作是特殊处理过的,在特殊处理的时候要把备注添加好,通知给所有人

5. 代码规范:这个在刚进入职场的时候不会注意,不规范的开发随着时间的推移就会发现踩了很多坑,比如:

1) 唯一索引,在代码里判断了不能出现重复,数据库里没有设置唯一索引,那就有可能会出现重复的数据

2) 异常情况的处理,有的时候只考虑的正常情况,没有添加处理非正常情况的处理,这样当出现非正常的操作时就会出现一个错误的页面

3) 变量类型的定义,有的情况变量类型的不同会出现不同的值,经常出现的是字符串和数字,一个实例,$a = array(‘ab-c’, ’12-a’, ‘ab-12’); $b=’12-a’ 判断if (in_array($b, $a)) 会返回false

4) 方法函数的参数考虑是否设定默认值public function a($a, $b=””)

5) 导出excel文档数据太多可能导致内存超出

 

6. If 判断要有退出逻辑,如 if($a > 10){} 那么当 $a 大于 10 就进入无限循环了

7. 更新数据时考虑先后顺序,有时候在一个方法里 上面用到了这个信息,下面才处理更新的操作,这就导致了信息的错误。还有删除操作,前面有一条假数据,先删除后更新,肯定找不到数据了

8. 方法的调用,在一个方法里面添加了不同域名都调用这个方法,每个域名下这个方法实现逻辑都一样,互相调用就出现了无限循环

9. 静态化的情况,有一个参数变动都需要重新生成页面,多个参数需要多个静态页面

10. 数据获取结果限制最大数,不然特殊情况会查询所有数据,输出时会产生很多流量

11. 数据更新、删除时不要忘记where 条件,以防万一加上limit 限制,避免错误时更新全部数据

12. 改bug的时候可能比当初一次完成所需要的时间还长,深思潜行

13. post 传输长度一般为2M,get传输为2k

14. 需要考虑应用场景

15. 时间问题,上线时间是否控制,是否自动下线

16. 随时间推移数据增多是否有影响

17. 运行环境的差异:测试环境切换生产环境

18. 涉及哪些模块:有哪些项目需要修改

 

四、测试

开发完都会测试一边,有时候耍懒或者感觉是小改动就不测试,这样就不能保证绝对正确,有时候很小的改动也会出bug,测试的习惯要慢慢培养起来。

 

遇到逻辑复杂的情况,要根据每一个场景、不同的参数、不同的测试环境测试,自己测试都需要一两天时间,想想测试也是一件辛苦活呀。

 

五、上线跟踪

项目上线之后要主动跟进,根据线上数据看看是否符合要求,这样才能及时发现问题。

 

当一个项目刚刚启动的时候,可能没有那么多问题。当有一定数据量的时候,业务逻辑也变复杂了,这时候改动一个功能点,既要考虑前面的兼容性,又要考虑以后的性能问题,需要做的任务越来越多,业务也越来越复杂,bug就会出现,出现问题要多思考原因,及时改正,要减少bug出现,这样才能在职场中赢得大家的信任。好的习惯需要慢慢培养,大道理一大堆,只有遇到的时候才能深有体会,现在你看到的问题,可能就是以后你遇到的问题。一点总结分享,感谢阅读,欢迎交流。

 

十年开发技术 Bug 总结,程序员经验分享

                           来和大家一起成长吧!