编程干货|8个解决bug的方法,告别加班改bug的时代!

什么是程序员最大的梦魇?毋庸置疑,这个答案就是bug!奋斗君作为一名工作9年的程序员,提到bug那也是一把辛酸泪啊!

想起当年因为加班改bug没有时间陪女朋友过生日,最后导致了分手,我也不至于单身到现在啊!(眼泪不争气的砸在了键盘上)

 

好在这些年和bug纠缠不断,也累积了不少解bug的方法,为了大家能避免步我后尘,在这和大家分享几个好用的解bug方式。


前言

首先我们解决问题前,要先制定好一个解决问题的流程,了解清楚这个问题是什么,然后就是分析要把问题处理成什么样然后在分析这个问题产生的原因,最后在解决这个问题。

出现bug,不要立马怀疑是电脑出问题了,操作系统bug和框架问题,这里框架泛指广泛应用的成熟框架,公司自己做的除外。据我经验,99%的问题都是自己的代码逻辑问题,所以一上来就要检讨自己。


解决bug的方式

最小化定位

大家应该都能理解,就是用排除法尽可能把没有问题的代码排除掉,这里可以使用二分法排除,然后把有问题的模块拎出来,单独进行单元测试,所以代码的模块化解耦是非常重要的,解bug套路。

合理打log

很多正在运行的线上系统都没有办法给你断点调试的,这种时候合理打logo就非常重要了。有的人喜欢把什么内容都写进logo,这样导致logo文件巨大,几个g的logo了解一下,这里给大家推荐几个打log的建议:

  1. 按日期分文件 
  2. 巧用分隔符
  3. 避免不必要的浪费。

    三:旧版本代码比较

如果是新版本新出的bug,最好和旧版本进行比较,一般写代码都有版本管理,例如g的或s5n,合理利用代码比较功能,看看某个类或者什么方法新增了什么代码,删除了什么代码,这样比一比就可以分析出问题所在的解。

四:活用抓包

这类问题经常出现于前端后端PK中,由于现在很多框架已经封装了很多层,收发报文都很难通过断点进行查看,哪怕断点都会导致阻塞,影响调试效果。

所以通过抓包软件,例如wire、shacks,可以很方便地看到豹纹,然后拿着白纸黑字就可以看出是谁的问题了。

五:利用各种工具

因为不同的语言行业编程工具都有所不同,我仅列举我自己常用:

1.debugview

查看程序输入输出的内容的工具。

2.depend

查看程序dll依赖的工具。

3.the Jason dot com

在线Jason工具能做很多Jason相关的事情解.

4.Winhex

查看文件16进制的工具

活用搜索引擎

这里建议大家使用英语搜索Google或者是being,你会发现很多有价值的答案。如果是框架层的问题,恰好这个框架有上句号,尝试搜索该项目的意思,也会有很多意外发现。

七:求助大神

这里像我们的CSDN、知乎、或者奋斗君的交流群每天都活跃着很多大佬的,建议大家在求助别人的时候,不要把代码直接扔过去,起码你的问题自己尝试过的方法已经得到了什么结果,什么点解决不了,说清楚。别人的时间都是很宝贵的,充分尊重别人,才能得到别人的用心帮助。


八:套路本地化

如果是线上的项目,建议将关键数据当不到本地,当然很多线上数据库非常大,如果可能请导出的时候做一下筛选,把关键数据导出来。这种方法适用于刚上线不久试运行的项目,通常正规化管理的是不允许程序员直接接触线上数据的。


结言

好了,这是我自己总结的8个解决bug的方式,为了感谢大家一直以来的支持,我整理出了一套适合大部分人在学习和工作期间是都能用到的资料(c语言、java、python等编程语言的教学、配套练习题、学习路程图、进阶实战项目等)大家如果有需要可以+q群879132246。希望我的分享可以为大家提供到一些帮助!也希望大家能够继续支持我,奋斗君会不断更新更优质的内容!

  • 57
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 34
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值