• 写代码遇到Bug怎么办?
  • 发布于 2个月前
  • 277 热度
    0 评论
  • 斗鱼
  • 0 粉丝 22 篇博客
  •   
今天来聊聊如何高效率地进行代码诊断。之所以分享这个话题,是因为经常有小伙伴写代码一遇到问题,就截个图发给我,问我是什么问题,然而大多数情况都不是什么疑难杂症,说白了都是靠搜索引擎就能解决的问题。为了节省大家的排错时间,提高编程效率,今天就来讲讲如何高效率地进行代码诊断。

首先,要调整好心态

遇到问题首先要做的是冷静下来,不要乱了阵脚。记得我刚入行的时候,带我的前辈经常说的一句话就是:不是谁都有这么好的运气可以遇到这么多问题的。在解决问题的过程中,可以使你注意到之前忽略的细节,甚至可以让你发现自己的知识盲区,同时也是一个积累经验的过程,说白了在编程这一行,高级工程师相比初级工程师的优势最重要的一点就是经验了,而在错误中吸取的经验要比书本上的理论知识更多价值。所以从这个角度来看,遇到问题也不是什么坏事,也没什么好慌张的。


调整好心态后,就要开始排错了,第一步应该从最简单的地方入手,比如看看运行环境是否正常,网络是不是通畅,磁盘设备有没有出现异常,参数格式会不会错误等等。具体要从哪个方面查起,需要一定的经验跟直觉,如果你的工程是web工程,那么网络、环境等都是需要排查的。

其次,要学会看异常信息

很多时候错误原因已经在异常信息里面写的很清楚了。只要细心一些,循着异常堆栈追查下去,一般来讲大多数问题就都迎刃而解了。


如果还是看不出来是什么问题,那么可以查看日志或者打断点看看代码的执行过程是怎样的。关于日志信息,比较重要的几点一定要有,比如类名、行号、异常堆栈等,特别是当在生产环境上出现问题时,完善且清晰的日志可以节省你大量的排错时间。

如果到了这一步还是不能发现问题,那就要问问搜索引擎了。基本上我们碰到的问题90%以上都是别人遇到过的,其中90%以上的问题都可以通过搜索引擎找到解决方案。当然,使用搜索引擎也是有技巧的。可以多试几个关键词,或者多个关键词组合起来,在关键词前面加上使用场景、环境、框架、软件版本等信息也能提高搜索命中率。中文的搜不到就试下英文的,百度搜不到就试下谷歌。到了这一步应该80%以上的问题都能解决了。

如果你运气比较好,试了上面这些方法都还没能解决问题,那么就要从其他渠道去寻求解决方案了。比如去专业的问答网站stack overflow搜索下,看看有没有类似的案例可供借鉴。如果你用的开源项目,那么可以到github的项目主页看看有没有人反馈过类似的问题。如果你用的是企业产品,那么可以咨询该产品的技术支持人员以寻求帮助。

以上这些方法基本上可以解决90%以上的问题了。剩下的10%的问题就要通过阅读源码或者请教他人去解决了。当然,提问题也是一门学问,如何高效率地提问题,下次再分享。

用户评论