程序员如何描述清楚线上bug

栏目: IT资讯 · 发布时间: 5年前

内容简介:一个管理后台的bug,把操作记录中的操作员姓名,写成了该操作员的id。原因是修改了一个返回操作人姓名的函数,返回了操作人的id。但是还有其他地方也用这个函数,导致其他地方把姓名字段填写成了操作员的id。该bug污染了一条修改记录,操作员手动删除就好了。回滚代码后恢复。本质是修改了函数的返回值,却没有查看所有调用的地方。这个函数的名字叫getinfo,但是在代码的其他模块中也有同名函数,返回的都是id,让修改的人以为都是一个函数,引起了混淆。所以函数名也要修改,做到通过名字能够清晰看出函数功能。

案例

一个管理后台的bug,把操作记录中的操作员姓名,写成了该操作员的id。原因是修改了一个返回操作人姓名的函数,返回了操作人的id。但是还有其他地方也用这个函数,导致其他地方把姓名字段填写成了操作员的id。

该bug污染了一条修改记录,操作员手动删除就好了。回滚代码后恢复。

本质是修改了函数的返回值,却没有查看所有调用的地方。这个函数的名字叫getinfo,但是在代码的其他模块中也有同名函数,返回的都是id,让修改的人以为都是一个函数,引起了混淆。所以函数名也要修改,做到通过名字能够清晰看出函数功能。

本来很简单的一个线上bug,按照上面的描述几句话就说清楚了,但是一个组员说了一个小时,才勉强让组内的其他同学听明白。

他在描述的时候,先说代码,还有更改代码的背景,而且描述的只言片语,让大家不停提问,花了很多时间。

怎样能够描述清楚线上bug,也是有方法论的,大家可以看看。

描述的顺序

1. 对齐背景

对于线上bug,先描述影响,从用户角度把bug描述清晰。可以把自己想为测试,测试给我们报bug的时候,从来都不会说你代码哪里错了,只是把现象给出,再加上复现的步骤。

同时也说清楚影响范围,多久恢复,让大家放心,知道影响面。

2. 交代错误原因

用直白的语言,说明出错的原理。为什么出错?注意是直白的语言,不是交代代码层面那个函数出错。例如上面的例子,应该说是函数返回值修改导致,而不应该直接说getinfo是一个什么函数,为什么要修改这个函数。

3. 说明引入错误的始末

一般线上bug都是由于变更引起的。究竟是什么变更,为什么会有变更需求,也需要交代清楚。

4. 如何预防

发生bug不可怕,可怕的是重复发生。 吃一堑长一智,不让错误发生第二次,要反思预防的方法,防止再次发生。把预防的方案想好,说出来。

按照上面的顺序会比较清晰、快速地描述清楚线上bug。让听众能够快速了解到影响,和处理方式。

描述清楚线上bug是每个 程序员 都要必备的能力之一,也是日常经常遇到的场景。 掌握先交代背景和影响,再说明错误原因和如何预防,是一种行之有效的描述方法。

延伸阅读

通用的方法论可以学习《金字塔原理》《问题的分析与解决》中的SCQA、MECE等方法,这些才是根本,要努力学习和刻意练习才能够掌握。


以上所述就是小编给大家介绍的《程序员如何描述清楚线上bug》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

轻营销

轻营销

唐文 / 机械工业出版社 / 2015-6 / 35元

《轻营销》,中国第一本全面讲述如何在互联网新时代用小预算做大营销的书籍,以求把中小微企业从那些以大预算为基础而难以落地的营销理论和案例中解脱出来。用“轻”但真正起作用的方法,帮助传统企业抓住互联网新一波浪潮的机遇,转型升级。 “怒打价格战、拼命砸广告、渠道金字塔”是过去中国企业做营销的基本功课,背后的逻辑是花钱。今天这三招已经不太管用了,广告费用的多少不再是决定性因素。取而代之的是直面客户的......一起来看看 《轻营销》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

SHA 加密
SHA 加密

SHA 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试