吃了一次故障的一点感想

这个礼拜接了个需求,由于表中现有字段无法满足查询,所以新增了个几个字段。

一顿操作完成,字段加上,从kafka消费数据完成,心里美滋滋。

问题出现了,别的部门反映查询出来的数据有问题,导致他们线上一些业务无法操作了,心里一激灵,就立马开始排查起来。

不管怎么说先止血吧,是由于数据库中有个表字段既有null又有空字符造成的,立马查询加入判断,止血结束。

虽然止血了,但是总要知道是什么原因造成的吧,那么就开始一点点排查原因。

原因就是现在公司规定字段必须要非空并且给默认值,但是以前是不要求的,导致在老表有很多字段是允许为null。

然后公司封装的框架,insert语句也有点小坑,就导致新的消费逻辑上了以后,有个字段变成了空字符。

其实这些和字段允许为null,公司insert语句有坑关系都不大,问题还是出在我们自身上面。

当时为什么这么推崇TDD,其实不无道理,但是真的很难实现。

出现问题的几个原因:1.开发没有单元测试 2.开发缺少相应的文档 3.没人走读代码 4.开发没有跟测试讲清楚数据会对谁有影响 5.测试也没有意识到下游的一些情况

总之,生产出问题无非2个原因 1.机器或中间件挂了 2.代码有bug。

第一点我们控制不了,但是我们能控制第二点。

现在自己组内开始实行以下几点:

单元测试(接口内异常情况覆盖)
代码走读(backup交叉走读)
代码评审
backup
接口文档

对测试也提出啦要求,如果数据或接口涉及到相关方,一定要通知到相关方去去验证。

当然还有一个很重要的一点:

开发过程中,开发人员与开发人员多沟通,开发人员与测试人员多沟通。

沟通多了才不会有歧义,才能达成一致。

这是这次吃了故障的一点感谢,如哟不对请提出,共同提高,谢谢!

猜你喜欢

转载自www.cnblogs.com/shenqiaqia/p/11295577.html