线上问题的解决思路

来源:互联网 发布:php是什么意思在奶粉中 编辑:程序博客网 时间:2024/03/29 00:31

       上周接了一个任务,处理线上的一个bug,看似简单的问题,如何快速的定位解决是很考验人的时刻。线上问题如下:


线上大部分的数据是没有问题的,只有这一组数据出现了问题,so,问题的关键就在于如何定位了,接下来便是深入基层,从页面开始查看调用了那个方法,之后进入业务端代码,真正的大戏开始了,如果是新手对业务和代码都不熟悉,这会是一个很煎熬的时刻(自己就是这样的……)。所以你就必须一条一条业务去跟,一个一个接口去看,之后就是根据接口查找正真的数据来源来自哪个库表,循环往复,一遍遍地跟踪才可能对新的业务和数据有所了解。如果够幸运的话在这个过程中便可以发现和解决一些小的问题,但是碰到一些古怪的bug还是需要很深的内功的,那就需要另辟蹊径了。

       从表面现象来看的话是页面数据加载出错,但是具体什么错误我们不知道,这是我们可以将详细的错误信息打印出来,以便定位问题出在哪里,例如自己的XMLHttpReq.status值为500,所以可以确定问题出现在业务端。


     当然这个的前提是可以在开发环境模拟线上环境来进行这些工作,这当中模拟线上环境,模拟线上的数据就是非常非常重要的一关,需要多业务熟悉、还有就是每一个业务会涉及到那些数据,才可以完整复现线上的问题,这个过程只能慢慢修炼了,当开发环境的数据都模拟完毕之后,打印XMLHttpReq的信息便可以初步确定错误来自前段页面还是业务端代码,当然我们也可以从其他页面的返回值来确定是不是页面有错误,但是打印XMLHttpReq的信息毕竟是很专业的方法。如果确认前端没有问题,再接下里就是一步步去业务端跟代码了,业务端的问题也是千奇百怪,但是如果可以到了能够针对问题单步调试的程度,最终肯定能够定位问题的所在。

       以上就是自己调试线上问题的一些思路和经验,这个过程中经历了很大的时间压力还有上司压力,这种压力会给自己解决问题带来负面的影响,但是我们能做的就是把“鸭梨”放进冰箱里,变成“冻梨”……如果日志写的比较好的话,线上问题很多时候也可以通过日志来定位,所以还需要结合具体的情况来定位问题,后期自己也会介绍一下线上日志定位问题的一些思路和步骤,尽请期待!

0 0
原创粉丝点击