0%

线上bug总结-01

面试的时候,总会被面试官问道 “在职业生涯中,你印象最深的bug是什么?”; 有时候, 如果紧张,真滴会不知道该说些啥。
这个系列就是为了解决下面两个问题

  • 复盘之前的错误,方便回顾并总结
  • 更加高效的面试此类问题

我个人认为线上的bug从大类上划分, 主要分为两类

(1) 数据类

(2) 技术类

数据类

数据类问题不用赘述,无外乎是由于

  • 没有添加校验导致传递了空值或者异常值
  • 忘记set(赋值)或者赋值错误(赋值给A字段的结果给了B)

对此我的建议是

  • 养成校验数据格式的习惯,避免空指针或者异常值的问题。前置的校验,可以避免后续不必要的业务流程流转。

  • 学会写单元测试(如果写出全面和有效的单元测试是一个有技术的工作)

技术类

技术类的线上bug就太多了, 我们平时写的包括

  • 技术不精,没有深刻理解标准库或者第三方框架源码导致的代码错误
  • 语言本身的问题 - jdk的空轮询
  • 框架本身的问题
  • 业务量猛增,我们需要面临高并发,高性能,高可用的分布式系统设计问题

其中还有一些框架版本兼容性的问题;比如dubbo 2.5.x版本和spring的切面就有冲突;hbase与hadoop版本的兼容性问题。

提醒我们, 在使用一些框架或者代码的时候,一定要准备的理解其设计,让他更好的为我们服务。同时如果及时的发现一些开源框架的问题,也要及时的给社区提PR。