如何快速解决程序中的Bug?

文章目录

  • 一. 搜索问题改bug前
    • 1.1 获得更多信息
    • 1.2 明确边界
    • 1.3 保护现场
  • 二. 解决bug
    • 2.1 搜索引擎
    • 2.2 如何搜索
    • 2.3 官方文档
    • 2.4 github
    • 2.5 追溯源码
    • 2.6 如何提问
    • 2.7 哪个平台提问
    • 2.8 重启

一. 搜索问题改bug前

1.1 获得更多信息

我们要搞清楚bug为什么会发生,什么情况下会发生,用户到底做了什么操作才导致了这个bug呢?

1.2 明确边界

通过手上的信息搞清楚这个bug到底算在谁的头上。

1.3 保护现场

首先是自主排查,比如对程序的报错,以记录的错误日志进行分析。

二. 解决bug

2.1 搜索引擎

遇见bug了首先使用搜索引擎,百度和google。

2.2 如何搜索

  1. 搜索词后加上横杠加上advertisement可以快速屏蔽广告信息。

  2. 使用site: +域名+搜索词可以在特定的网站内快速搜索,像现在大部分的bug解决方案在CSDN。

  3. 使用百度搜索信息时,我们可以先将错误日志中的关键词拆解出来;比如版本号,数据库类型等等,可以使用空格进行连接,叠加关键词可以更加精准的搜索到想要的结果。

  4. 在搜索关键词后添加时间后缀,可以搜索特定时间内关于某关键词的信息,这样我们就可以搜到最近的bug解决方案。

  5. 使用开发者搜索,专门面向程序员的搜索引擎。纯净了很多,而且看起来它的实现方式也很简单,就只从开发者相关的网站中搜索内容就行了。

2.3 官方文档

当我们使用一些冷门技术或者较新的技术时,国内的百度可能很难找到解决方案,这时我们不妨打开官方文档,找到和自己问题相关的部分。

2.4 github

如果你使用的是开源项目,那么可以试着在项目仓库的issues中搜索答案。尤其是知名项目用的人很多,你遇到的bug有可能别人也遇到过,那如果有解决方案就可以直接照搬;哪怕没有解决方案,你也可以试着联系同样遇到bug的人一起来解决。

2.5 追溯源码

除了依赖冲突、内存溢出之类的技术上的bug,其实我们工作中更多的是修复业务逻辑上的bug。我们就从程序的入口开始,用debug打一些断点,输出一些信息,慢慢调试,肯定都是可以解决的。

如果你怀疑是某个依赖的方法出了问题。那么可以直接点进去查看方法的源码和注释,那如果我们自己无法解决问题,就只能求助了,但是向其他同学提问也是很有技巧的,想要更快更准确的获得答案,就要把你的问题场景、前因后果、关键信息都提供清楚,还可以利用paste bin之类的工具分享代码。

2.6 如何提问

阅读《提问的智慧》,学习提问的技巧。

2.7 哪个平台提问

  1. CSDN:适合初学者。
  2. stack overflow:相对更活跃,解答人数会更多,更专业。
  3. 如果是开源项目,可以考虑在项目仓库下自己提一个新的issues,@官方人员去帮你解决。如果你用了别人提供的类库和服务器,可以在官方文档中联系到项目的维护者,向他们反馈。

2.8 重启

你可能感兴趣的:(编程开发,bug,java)