对于大部分开发人员来说,你所看到的绝大部分BUG已经被别人修复并且分享出来了,这时候百度已经足以帮你

但是你也有可能会遇到一些稀奇古怪的Bug,这时候你就需要静下心来,好好的仔细研究一下了。下面,分享一下我偶然得到的心得体会。

首先,找出Bug

  1. 换环境

  2. 换用户

  3. 换数据

  4. 换浏览器

  5. 换版本

  6. 换种操作

找到Bug之后,再搞清楚下面这几个问题:

  1. 这个BUG出现需要的环境是什么?

  2. 这个BUG之前没有,现在出现了,中间都动了什么?

  3. 这个BUG出现的情况是什么

  4. 什么样的神级操作才会出现这种Bug

找到Bug的问题,就可以针对性的解决了

下面主要再给大家列出一些常见的疑难BUG的诊断方法:

1. 输出结果与预期不符,这种BUG一般都是由于代码逻辑错误造成的,如果能在开发环境重现,最好解决方法就是单步调试,设定每一步代码的预期结果,然后跟踪判断实际结果是否与预期结果一致,不一致的分析原因,如果在开发环境无法重现,无法单步调试的,可以采用添加输出日志的方式判断哪一步的问题。

2. 系统异常报错,这种情况下需要提取日志,找出错误堆栈信息,这时候最重要的事情是要把堆栈信息看懂、看完整。这是很多经验不足的程序员常见的问题,就知道报错了,报的什么错,这个错代表什么一概不知。而且往往堆栈信息是一个套一个输出的,比如Java里面表象上看是一个NullPointer Exception,但是如果你看到底,就会告诉你到底是什么错误引发了这个NullPointer。

3. 系统Crash,这个问题常见的原因是负载过高、并发过高、或者配置错误。最常见的就是内存溢出。这时候要首先排除配置错误的原因,主要靠查看Crash Log来分析原因,如果Crash Log没有有用的信息,就得排查硬件、内存、网络等方面的设置,看是否有配置错误的地方。再找不到就在测试环境用开发模式进行压测和调试。

4. 系统响应缓慢,这种问题一般是系统资源不足,

给一个解决Java应用响应缓慢的方法

通过这些步骤,找出那些功能、那个方法、那段代码存在瓶颈和资源竞争,针对性的对这个地方进行改造就行了。

最后,如果某个地方出现BUG实在找不出什么原因,机谋用尽,那就上我们的绝招“小黄鸭调试方法(Rubber Duck Debugging”吧。

1. 去买一只小黄鸭,黄色的小鸭子,一按就会嘎嘎嘎的那种,也可以用其他的玩意代替

2. 把小鸭子放到电脑屏幕上方面对着你,就下面这样的

3. 打开你出问题的那段代码,面对小鸭子,用手指着代码,一行一行的给它解释一下这行代码是干什么的,为什么这么写。

4. 现在知道问题在哪了吧?

不说了,我给我们办公室批发小黄鸭去了

程序员界改BUG“神”发明,学会10分钟搞定一个BUG相关推荐

  1. 直击面试现场:程序员阿里应聘,2轮4小时成功搞定16Koffer!

    写在最前面 这次的内容主要来自于2017年阿里实习生面试的交流,不过我把面试中提到的所有点都以单独的知识点的形式提出,可能给人带来 "怎么实习生面试这么难" 的错觉.当然在面试中, ...

  2. 内部流出: 66个经典数据分析神技汇总,10分钟搞定一天工作!

    不会吧,都2022年了, 还有人在网盘.B站里学"Excel的用法和表格模板"? 宝~ 那忒麻烦了,还不靠谱 今个,分享你一 华为内部流出的  Excel学习资源! 1.用Vloo ...

  3. GitHub的AI程序员“抄袭”算法大神代码,连原版注释都抄上了

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 本周GitHub官方和OpenAI联合发布了一款代码神器AI--GitHub Copilot,只需输入注释,即可自动生成代码,堪称一位&q ...

  4. 这位闯进程序员界的维密天使,她到底可以编出什么?!

    作者:屠敏 来源:CSDN 格子衫.大裤衩.人字拖.黑色双肩包以及 BlingBling 的头发放置在一个人身上时,你首先想到的是他代表了哪一种群体? 想必很多身处 IT 届的从业者都已了然于心,这不 ...

  5. 小情侣冷战到半夜!不料程序员男友一波“神操作”巧妙化解,女友懵了.........

    近日,播妞刷到了一条 让人哭笑不得的视频...... 广东一名女子和她的程序员男友冷战 没想到的是,程序员男友一波"神操作" 不仅给自己找了个台阶下 还巧妙地化解了这个尴尬局面 视 ...

  6. 程序员界的九阳神功与独孤九剑

    想写这篇文章已经很久了,可以说它是我很早以前就思考过的两个理念之一(另一个是"金字塔理论"),希望读过本文的人多多提出你们不同的看法,共同分享. -----------Lycos ...

  7. 这位闯进程序员界的维密天使,她到底可以编出什么?

    格子衫.大裤衩.人字拖.黑色双肩包以及 BlingBling 的头发放置在一个人身上时,你首先想到的是他代表了哪一种群体? 想必很多身处 IT 届的从业者都已了然于心,这不就是程序员的经典造型嘛.所以 ...

  8. 你好奇程序员和Unix大神们的桌面长啥样吗

    2002年,我向一批程序员和Unix大神要了他们电脑桌面的截图.下面是我收到的回复. 1.Dennis Ritchie (C语言发明者,Unix联合发明者) Dennis Ritchie的电脑桌面,截 ...

  9. 做一个好的程序员难吗?只需要这10个习惯

    大家好!我是王不二,一个在上海打拼5年的Java开发者,2021年开始自由职业,专接外包,私活,如果你也有这方面的经历或问题,欢迎聊聊. 在这个世界上,有数以百万计的人对软件开发充满热情,他们有很多名 ...

  10. java粒子特效_程序员20分钟搞定粒子效果, 仅仅200行代码

    原标题:程序员20分钟搞定粒子效果, 仅仅200行代码 这粒子的打造,确实没有布局代码,稍后大家在源码上可以看到,css代码都只有几行,绝大部分代码都是java代码,而且是原生java书写的,现在很多 ...

最新文章

  1. 将 TensorFlow 移植到 Android手机,实现物体识别、行人检测和图像风格迁移详细教程
  2. C1之路 | 备考C1
  3. How do I sort groups of data items?(WPF)
  4. Spring Boot笔记-拦截器相关(用户权限方面)
  5. 插值法补齐缺失数据_数据处理——缺失值处理
  6. 个人空间html5主页面,2.HTML 教程- (HTML5 简介)
  7. 11. PHP 运算符
  8. Spring之IOC容器
  9. Linux 环境下 vi/vim 编辑器常用命令
  10. 分享12个鲜为人知的的小众网站,每一个可以让你打开新世界的大门,让你震惊。...
  11. UCDOS中的点阵字库HZK12,HZK16,HZK24,ASC12,ASC16(转)
  12. 2.4 GHz ZigBee网络处理器CC2530ZNP(TI)
  13. 几大主流的前端框架(UI/JS)框架
  14. GB2312区位码、编码表与编码规则
  15. 火狐Android 附加组件,Android版Firefox 85允许AMO安装附加组件
  16. java log4j详解_log4j详解
  17. 云虚拟主机bch 和 云服务器bcc,虚拟主机bch和云服务器bcc
  18. Android安全相关
  19. 如何使docker容器不退出
  20. ERROR: Failed building wheel for ctcdecode

热门文章

  1. ultravnc软件,5款ultravnc软件推荐
  2. MySQL 查询统计订单
  3. 2019年淘客怎么做推广之大淘客都必须知道的联盟发展方向和玩法
  4. web前端开发之CSS
  5. 选型宝分享上市公司女CIO亲身讲述BPM系统选型历程
  6. 将网易博客搬家迁移至CSDN指南:163博客关闭前的备份导出与迁移方法
  7. 国产FPGA芯片资源性能对照比较一览表
  8. 华为公司大数据中台架构分享
  9. 我们一起写opengl程序
  10. 微信小程序、公众号侵权投诉流程