你只加了两行代码,为什么要花两天时间?

你只加了两行代码,为什么要花两天时间?

这个问题看起来很合理,但是仔细想想,这个问题背后有一些很极端的假设:

  • 代码行数 = 工作量

  • 代码行数 = 价值

  • 所有的代码都是等价的

以上皆错。

那么为什么修复一些看起来很简单的问题需要花两天呢?

1. 因为报告问题的人没有描述如何重现

我花了好几个小时才能稳定的重现问题。有些开发者可能会立即去找报告问题的人,在开始调查问题之前试着了解更多信息。有些开发者不喜欢修复bug,所以他们尽量避免这些问题,没有足够的信息就是一个不错的接口。我不是不想帮,是帮不了。我对上报问题的用户很感激,我知道上报错误不是很容易,所以我在联系用户前,会尽量利用已有信息解决问题。

2. 因为报告中提到的功能我不熟悉

这个功能我很少用,也从来没详细使用过。也就是说我要花比平常更久的时间才能理解怎么使用这个功能,还要再花一些时间理解有bug时怎样影响这个功能。

3. 因为我在花时间调查真正的原因,而不是仅仅观察问题的表现

不能头疼医头脚疼医脚,隐藏错误不是解决问题。藏起来一个问题很有可能会导致其他副作用,我不想以后再跟这个bug打交道。

4. 因为我在查产生这个问题的其他方式,而不是仅解决报告中的步骤

按照步骤重现问题很简单,但实际上的问题可能是更深层次的。找到问题的原因,找到重现这个问题的其他步骤,可以洞察到更有价值的内容。例如代码实际上是如何使用的,有没有其他地方存在类似的问题,或者可能会发现同样功能的代码写法不一致,有些代码没有同步复制到另一处?

5. 因为我在花时间验证代码中是否有其他部分受到类似的影响

如果一个错误导致了bug,代码库中可能还会有类似的错误。这时候趁热查找最容易发现。

6. 因为我找到原因后,尝试用最简单的方法修复,避免出错风险

而不是用最快的方法,我不想修复一个问题未来产生更多的问题。

7. 因为我对改动做了彻底的测试,并且验证了受影响的所有路径

我不想依靠别人测试我的改动是否正确。我不想放下这段代码后再出现bug。程序员切换 Context 是很昂贵很疲惫的事情。

我不喜欢改bug,部分原因是,这感觉就像是在面对我以前做的错事。还有一个原因是我更喜欢做新东西。

比改bug更糟的事是什么?多次修复同一个bug。我更愿意花时间确保一个bug被完全修复了,不需要再一次去面对、去调查、去修复、去测试。

本文翻译自: https://www.mrlacey.com/2020/07/youve-only-added-two-lines-why-did-that.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值