程序员如何快速的高效的解决各种bug和报错?

看到一个问题,想起来之前修复的各种大大小小的bug,也花费了不少时间,这里做个总结。

看懂报错信息

当无法知道报错的含义,就更谈不上解决问题了。奈何很多报错信息基本上是英文,这就要求英语水平要过得去。不过有些技术单词出镜率比较高,如果平常有留意的话,基本上多看几次就脸熟了,

之前在react native群里经常看到有人说react native的坑多,然后也不管报错信息是什么,直接截屏到群里,看看有没有人回答。实际上报错信息可能已经比较明确了,这时候只需要根据上面的提示就可以知道是哪里出问题了。

现在的开发更是方便,报错信息基本上都会在命令行或者控制台显示出来,有的还会直接显示相关的文件和出现问题的代码行数。

熟悉IDE、浏览器等工具

一个好的文件检索工具可以让你瞬间找到想要的资料。

一个好的IDE内置了方便快捷的代码查找功能,断点调试等,各种快捷键,让你键步如飞。

一个好的抓包、接口请求工具可以让你准确分析数据。

一个好的工具可以提高你修改bug的效率。对前端开发者来说,调试网页没有什么比开发者工具更方便了,不过似乎很多人都还停留在基本使用的阶段,Chrome的潜力值得挖掘。单单一个console就有很多方便的操作。

基本的方法论

控制变量法:

当前版本不可以,上一个版本是不是可以?

测试的电脑不可以,其他同事的电脑是不是可以?

分析下可能会受到影响的几个因素,然后挨个排除,可以解决大部分的情况,至少可以先进行初步的判断。

有次遇到一个视频在手机端无法播放的问题,先看其他手机上可不可以,然后确定上个版本正常与否,再看代码有无改动。这边并无视频相关代码的改动,就先询问了下Android开发同事,对方说最近也没改动这一部分的代码。只能自己这边先排查看看是不是node_module文件错误导致的,因为之前改动过视频库的源码。换了台电脑重新打包测试,结果还是会出现这个问题,然后就和Android说明情况,排查问题(之前也出现过类似的报错)。结果是他们下面有个同事修改代码的时候不小心把link第三方库的代码给注释掉了,他们leader合并代码的时候没注意到,并不知晓此事。于是我晚走了两个小时。

二分法

搜索引擎

如果你遇到的问题自己思考之后无法解决,不妨到 SegmentFaultStack OverflowGoogle等网站搜索下,说不定就有前人遇到过。还可以到GitHubissue下面搜索。

向他人寻求帮助

你可以向你的同事请教,看他有没有遇到过这类问题,有没有解决办法。还可以到技术论坛发帖。还是会有很多热心网友帮忙回答问题的。

提高专业技能

准确来说,这个其实是最为重要的。如果技术能力足够扎实,可以在很大程度上避免一些bug的出现。但现实往往可能因为时间不够、精力不足等原因写出有bug的代码。如果能及时补充平常开发中用到的技能是一个很好的避免写bug的方式。

知识面还要广,HTTP、浏览器开发者工具等等,可以做到在自身需要的知识上知道+-范围内的知识。既有广度又有深度的能力不仅可以避免bug,还可以及时解决bug。

复盘,记录你所经历的bug

  • 这个bug为什么会出现?

  • 如何避免下次遇到同样的问题?

  • 今天的解决办法有没有彻底解决问题?会不会出现修改一个bug导致多个bug的情况?

很多时候,可能解决一个bug还是蛮开心的,过去了就过去了,然后过了一段时间你会忘记你当时是如何千辛万苦解决了的(不要问我为什么),这就非常让人苦恼了。

无论是记录在自己的笔记本还是写成博客,都是一个比较好的办法。

posted on 2020-10-31 17:44  花未全开月未圆  阅读(362)  评论(0编辑  收藏  举报

导航