又见Bug

时间:2022-03-27 15:28:20

文章转载自「开发者圆桌」一个关于开发者入门、进阶、踩坑的微信公众号

又见Bug

作为一名开发者,如何解决遇到的问题、异常或Bug,是开发者必须要面对的,尽管问题很多,情况复杂,但还是有方法和技巧可寻的。

问题无非是易解决和难解决的两种,如何界定它们其实也非常简单,搜索引擎得到结果越多,表明该问题大家都遇到过,基本上按照别人的经验都是可以解决的,对于搜索结果很少的问题,表明遇到类似问题的人不多,经验也非常少,可能无法快速解决问题。

有时不能仅仅依据搜索结果的多寡来判断问题的难易,最根本的还是看能否解决你遇到的问题。如果尝试了几次都没有解决,基本上可以断定这个问题有点难度了。

对于易解决的问题基本上尝试一到二次后就可以解决掉,而对于难解决的问题,该如何解决呢?

对于复杂和难度都非常高的问题,单单依赖搜索引擎给出的结果已经无法满足解决问题的需要了。但是我们可以遵循一套流程来解决这类问题。即「解决问题基本准则:先思考,然后查找资料,最后再求助他人」。

可能大部分开发者遇到问题的第一反应就是去各种搜索引擎搜索,一个一个解决方案的尝试,可能在尝试了几次后,问题得到了最终的解决。我们不妨回头总结一下,其实有些问题非常简单,不需要反复的尝试,甚至在高可用的生产环境下不会给开发者很多尝试的机会。

问题得到解决后,大部分开发者第一感觉应该是这样的:「众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。」

为什么问题解决后都会觉得“哦哦,原来如此。”这样的感叹呢?原因是我们没有遵守上述解决问题的基本准则,导致走了很多的弯路。

独立思考

我遇到许多开发者不做任何的分析,不思考问题发生的原因,就把异常信息贴到搜索引擎里面去搜,最后搞了N次尝试还是没有解决问题。这属于盲目搜索,完全依赖搜索引擎的错误做法。

思考很重要,一方面可以确定问题的根源,另一个方面还可以帮助你使用更加合理和精准的关键字进行搜索,事半而功倍。

当然,有些非常简单的问题,可以直接去搜索,简单的问题或者大家经常遇到的问题可能在尝试一次或者二次后就解决了,对于这样的问题,搜索是可以带来效率的提高的,「对于易解决的问题建议这样做,效率非常高」。

然而,一旦有些问题进行了三次以上的尝试还是没有解决,这个时候就需要思考了,思考问题的根源,调整自己的搜索关键字甚至是思路等。

查找资料

查找资料大家都会,但是怎么去查才能有效率,才能最快解决自己的问题,大部分初中级开发者都会遇到疑惑。其实,查资料是有技巧的。

首先,要分析一下问题的根源,然后去官方文档中查找对应的资料,官方文档是最权威的,一般情况下,基本上能找到你需要的问题解决方法。

国内开发者大多受限于英文语言障碍,很少去查阅英文官方的文档,而是一味地在中文论坛,搜索中进行,错过了很多有用的关键信息。遇到英文官网不要害怕,其实就那几个单词,搞明白了就海阔天空了,实在不行就借助在线翻译功能,基本上机器能翻译一个大概,够用。

其次,使用搜索引擎,关键字很重要,因此还是要思考问题发生的根源,这样才能使用最合适的关键字进行搜索,才能有好的结果,才能进一步快速解决问题。

最后,把官方资料、搜索结果、中文论坛等多种资源集中一起,互相验证和分析,找到解决问题的最终的方案。

对了,版本。很多你遇到的Bug已经在新的版本中解决了,如果条件允许的话,不妨升级一下版本试试,「版本问题可能是大家都踩过的坑」。

求助他人

经过上面2个步骤的探索,如果还是没有能解决问题,说明这个问题可能太难或者遇到的人很少,又或者是开发者自身的知识有限无法找到合适的解决方案。

这个时候就要带着对问题的思考去求助他人,而不是一味地贴出异常信息求助,这样才能有助于问题的解决和自身技术能力的提升。

关于如何求助他人以及注意事项,可以参考我的另一篇文章「如何请教别人问题?」。

无论遇到多么难搞定的Bug或者问题,上述思路都可以发挥它的作用,有时遵循一定的问题解决流程体系或者科学的方法,是可以快速解决问题的。