今天看到一遍博文(老程序员解Bug的通用办法),提到程序猿解决BUG的思路和方法,结合自己的经验总结一些;对待BUG,广大程序猿态度不同,解决方法也不同,各人有各人的法宝,但总结一下,希望对新入行的同学有所帮助!先来张搞笑图轻松一下(IT人员对待BUG的反应)^_^

PS:图是网上扒的

  1. 查异常日志
    最直接的方式就是查日志,尤其线上问题,第一步先看是否有异常日志。包括日志文件和日志系统,比如ELK中存储分布式系统日志;很多时候异常日志就能反应出问题的根本原因;
  2. 查调用链信息
    如果日志看不出问题,可以查调用链信息,有一些问题可能是业务问题,这就需要对业务流程较熟悉,根据用户的ID,订单号等一些关键信息,结合业务流程和数据库帮助定位和排查问题;
  3. 问题(BUG)重现
    如果日志没有反应出问题,那么下一步可以在环境上进行重现,重现过程还是要借助日志信息,不过这时候主要观察的是实时日志信息(线上环境一般要把日志级别进行下调整,比如调成INFO级别输出日志,当然记得解决问题后不要忘记把日志级别调回来~),甚至可以借助一些代理工具截取请求码流,辅助分析问题,码流主要用于分析用户请求及请求参数
  4. 本地环境测试或通过IDE-debug
    大部分问题通过以上方法或手段都能定位到问题,那么还有部分问题可能就需要在本地环境进行重现或通过IDE进行DEBUG,也可以通过远程调试方法定位问题,不过远程调试需要开启远程调试端口且要保证远程调试应用的版本和本地代码版本一致;
  5. 增加日志
    如果本地调试无法定位到问题,需要借助测试环境或线上环境的,但是原有日志无法辅助定位问题的,那么只能增加日志,然后打包发布到测试环境或线上环境测试以重现问题
  6. 分析代码
    也有人称之为小黄鸭调试法,小黄鸭不懂程序,所以我们可以向他解释每一行程序的作用,以此来激发灵感;其实说白了就是跳脱程序猿的固有思维,以另一个角度去审视代码寻找BUG

    PS:图是网上扒的
  7. 排除法
    还有一种方法就是排除法,初步排查,有点像医生看病,缩小问题范围以定位问题;
  8. 环境问题
    很多时候遇到一些个人感觉比较诡异的问题的时候,一般就是这个问题折腾了你很长时间了仍然没有解决,那么很有可能跟环境有关,比如maven缓存,编译问题等等,可以尝试更换环境试试

程序猿解决BUG之总结相关推荐

  1. OSChina 周二乱弹 —— 程序猿的 BUG

    2019独角兽企业重金招聘Python工程师标准>>> 周二好!天气越来越冷了,起床越来越难了,出门之前,记得叫醒你的男/女盆友, @Jarvan4dev:上班都要迟到了,女盆友还说 ...

  2. 论 BUG调试与(程序猿)初学者

    作为一枚程序猿,BUG调试是最基本的技能,对于初学者更是重中之重.个人而言,要想为自己的程序猿生涯更上一层楼,就得知道什么是BUG调试,而且还必须知道怎么调好BUG.那么BUG究竟是什么呢?在我之前的 ...

  3. 内涵!!!程序猿才懂的动图...

    bug多了,总有一个把你坑了 产品经理跟程序员提需求时 线上运行时出现bug 自动化一切,避免手动出错 只要功夫深,EJB也可以写Hello World 咱们做项目,没有高质量的IDE工具可不行 线上 ...

  4. 杂谈:程序猿生存法则

    "程序猿"北上广深一批游走于科技前沿而不被外界看好的异类 ,情商低,不爱说话,闷骚,聚集成簇的根根秀发,依稀可见的头皮,千篇一律的短袖,永不换洗的牛仔裤,在我看来其实不然,笔者步入 ...

  5. 程序猿的工作和生活,你真的不懂

    假如生活欺骗了你,找50个程序猿问问为什么编程: 假如生活让你想死,找50个程序猿问问BUG改完了没有: 假如你觉得生活拮据,找50个程序猿问问工资涨了没有: 假如你觉得活着无聊,找50个程序猿问问他 ...

  6. 30 个跟程序猿有关的成语

    猿来如此 指程序员通过调试终于找到 BUG 所在. 功成猿满 指项目大获成功,老板开始觉得程序猿人数太多,工作不够饱和. 左右逢猿 指需求评审会时,前后左右都是程序猿,舌战群猿,以一敌多的场面. 花好 ...

  7. 30 个与程序猿有关的成语

    文章目录 30 个与程序猿有关的成语 1.猿来如此 2.功成猿满 3.左右逢猿 4.花好约猿 5.自猿其说 6.心火燎猿 7.三朝猿老 8.破竞难猿 9.开猿节流 10.新猿意马 11.裁猿滚滚 12 ...

  8. 干货 | 要怎样和程序猿谈一场没有bug的恋爱

    小咖导读:诚心推荐(单身狗慎往下滑,后果自负) 现在越来越多的妹子把恋爱目标锁定在程序员上,原因无他:呆萌又多金.但如何和程序员相处一直是个问题,本文就教你如何优(xin)雅(ji)的驯服程序猿男友 ...

  9. 在TFS中通过程序动态创建Bug并感知Bug解决状态

    为便于跟踪问题解决情况,预警引擎产生的比较严重的预警日志,需要在TFS中登记Bug,通过TFS的状态流转,利用TFS Bug的Web挂钩功能,动态感知Bug解决状态,从而跟踪预警问题的解决状态, 整体 ...

最新文章

  1. 随笔 | 抢红包不是一件小事
  2. linux c 进程间通信
  3. 取供应商客户的期初表
  4. IOS debug网络PonyDebugger 实践篇
  5. cocos2d-x游戏实例(2)-主角根据输入移动
  6. CentOS操作系统(LAMP)安装教程
  7. staf工作笔记-使用stax并行处理获取其他主机操作系统信息
  8. 真的掏空了吗?华为开始疯狂出4G手机
  9. mysql按字段拆分表_MYSQL命令怎么实现将表中某个字段中多个记录拆分,急求答案!...
  10. js接收php 回调,JS callback回调函数的使用(附代码)
  11. CSS3给页面打标签
  12. Openvswitch手册(2): OpenFlow Controller
  13. 用Python爬虫爬取“女神吧”上的照片。
  14. 罗茨气体流量计的结构设计
  15. 华为手机安装debug的apk时出现无效安装和与操作系统不兼容问题解决
  16. TIM2_CH1_ETR可以当做TIM2_CH1来用
  17. MyEclipse 目录结构简化
  18. 未明学院:爬取微博关注列表,带你一窥“饭碗cp”的人际网
  19. 数学建模竞赛知识点汇总(一)——层次分析法
  20. 浅谈使用Word和Baklib制作帮助文档区别

热门文章

  1. 牛顿迭代法求平方根倒数
  2. windows文件鼠标右键添加工具快捷方式
  3. 软件工程教程:第2章软件问题定义及可行性分析 课后习题
  4. 第 1 行出现错误: ORA-00604: 递归 SQL 级别 1 出现错误 ORA-38301: 无法对回收站中的对象执行 DDL/DML
  5. EXCEL如何批量更改MAC地址格式?
  6. SQL 对含有字母和数字的列排序
  7. CodeVS3498 小木棍
  8. 给未来的儿子的一封信
  9. FastDFS,Redis,Solr,ActiveMQ核心技术整合二(1)
  10. Java SE 第八十八,八十九,九十讲 递归深度剖析 IO流深入详解,递归作业详解