今天在写项目的时候突然项目经理跟我说之前项目的一个功能请求出现了异常,当时虎躯一震,上线的项目出问题了?什么问题?当时慌的一批。
还好那个功能不是我开发的,但是开发这个功能的大佬去别的项目组了没时间管这个,当时也就只能硬着头皮上了。
首先找问题,进去测试环境的查看日志的输出,发现项目正常启动,其他功能不影响,那么可以肯定出错没有导致项目定时跑批终止运行或内存溢出等其他杂七杂八的问题。
接下来就是再现场景了,我按可能出现问题的地方一步步的测下去,发现选择医院数量过多的时候就出现问题了,而出现问题的日志提示字段过大的问题,然后心想上线之前测试过啊!怎么突然出现这个问题了?
没办法还好大佬之前写的代码每一步重要判断请求都打印了日志,最终确定是代码的问题,于是我就打开代码启动项目将出现问题的接口打上断点。
然后请求本地接口一步步的查看跟踪,找到出问题的地方一步步的深入进去,发现出问问题的地方让我哭笑不得,竟然是因为更新数据的时候没有做医院code的切割导致数据更新字段超过限制,五百多家医院一次更新一个字段,导致报错。
之前大佬是写了新增的时候做了切割,但是更新的时候缺忘了加,而测试也没测出来,可能是因为定时跑任务当时数据没那么多,也可能是测试没测到,导致了一系列问题,找到问题就好办多了,最终将代码纠正部署测试完美运行。
从这些问题中得到的思考:
1.一个问题出现的时候心态一定要放好不然头脑不清找问题会浪费更多时间。
2.从问题的表面开始又外及里逐层排插。
3.查看日志要注意抓住重点,找出问题的点。不要出问题就盲目的乱查乱看。
4.根据代码先分析问题出现的地方一步步debug跟踪到代码报错的地方再逐个排查,多次测试得出结论。
5.再厉害的大佬也有遗漏的地方,所以写代码细心非常的重要,再厉害的火箭也会因为一个螺丝钉而坠毁。
6.虽然出现问题但是大佬的代码逻辑日志输出注释是真的比较全,比较完美的,这是非常值得学习的就算出了问题,如果是没做过这个项目的其他人也能很快的根据日志和注释快速找出问题,这就代码可读性的好处。
在项目日常出错中怎么排查问题呢?
从问题中学到什么东西呢?
免费加入星球一起成长进步
在看、转发和辣条会提升颜值哦~
关注我
每天进步一点点
万水千山总是情,点个 “在看” 行不行