你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

“你只是加了 2 行代码,为什么要用 2 天?”

[复制链接]
gaosmile 发布时间:2020-8-29 23:20
“你只是加了 2 行代码,为什么要用 2 天?”
0 N8 ?. ~( u8 V# y7 g
这是一个看似合理的问题,但做了一些可怕的假设。

  1. 1 X. l1 @4 q9 E
  2. 代码行数 = 努力+ e: a3 T; K! t- J' ?8 j7 u( i
  3. 代码行数 = 价值;
    : R6 r' X! c1 {3 v: \2 p! n
  4. 所有代码都有同等价值;
复制代码
. _% F- _3 t6 \. C8 o+ f
上述 3 个假设都有误。

7 U4 |* ?7 r' \- q: C; F7 R
为什么 1 个看起来很简单的修改,要花 2  天时间才能完成?

3 [2 l: o3 Y9 ?" o; C0 \. m
我们来分析一下原因:) @) H/ [1 f9 h. L1 Q4 i
: c; F7 [% h" e4 z: f& y
1、因为提交这个问题报告的人,并没有清晰描述如何重现问题。

: ?7 W  v& x7 o+ K5 S8 b
我花了几个小时才重现了。有些开发者会立即回到报告问题的人那里,要求他提供更多的信息,然后再进行调查。我试着用提供的信息做尽可能多的事情。我知道有些开发者不喜欢必须修复 bug,所以会不惜一切代价来“逃避”。声称没有足够的信息是一种“好方法”,看起来你是想帮忙,但不需要做任何事情。报告错误不是一件容易事,我很感谢所有提错误报告的人。在向他们询问更多细节之前,我会尽量先从已提供的信息来开展工作。

( U5 ?% d7 h3 i$ l. D* Q# u, K- b3 S
2、因为报告的问题与 XX 功能有关,是我不熟悉的。

2 D; D' `) Z" \; q& j
问题所涉及的功能,我很少用,也不是我曾仔细用过的。这就意味着我得花了更多的时间去理解这个功能,以及它是如何与整个软件相互作用的。

; E5 r0 e' N$ x6 E, c
3、因为我花了时间去调查问题的真正原因,而不仅是看表面症状。(治本,不止治标)

2 H+ B2 Y! k9 H3 Q$ D
如果一些代码抛出了错误,你可以直接用 try...catch 语句把它包起来,然后抑制错误。没有错误,就没有问题。对吧?抱歉,对我来说,让问题隐形不等于解决问题。隐藏错误容易导致其他意想不到的隐患。我不希望在将来还得返工处理。

/ j+ a9 s1 {& P6 @1 b
4、因为我调查了是否有其他方式可以引发同样的问题,而不仅仅是重现报告的步骤。
& o3 I& @) z, ^: d, @0 k) q
重现步骤是很容易让复现错误,而实际上可能是更深层次的错误原因。找到问题的确切原因,并查看所有引发问题的方法,更能提供有价值的见解。比如代码实际是如何使用的,哪些地方可能有需要解决的问题,或者反映出代码不一致,这意味着错误是在一个代码路径 A 中导致的(或处理的),而不是在路径 B 中。

- J! V; H, s; n0 z+ L
5、因为我花了时间来验证代码中是否有其他部分可能受到类似的影响。

6 c  `4 }! Y! K9 W% c& h1 H
如果一个错误导致了 Bug,那么代码库的其他地方发生也可能有同样的错误。现在是检查的好时机。

( c* s; L2 V. g+ }& W* T
6、因为我发现问题原因后,我就开始寻找最简单的方法来解决问题,同时将带来副作用的风险降到最低。
- `5 R( v7 [6 z) E) A
我不想要最快速的修复方法。我想要一个未来不会造成混乱或其他问题的修复方法。

" u$ d" G$ y: p" ?- t; Y, [
7、因为我做了更彻底的测试,并验证了它解决了所有受影响的不同代码路径的问题。

' q! }5 o, ~2 y# T7 c! Q* C% z
我不想依靠别人来检验我所做的是正确的。我不希望在将来发现错误,不得不回到这段代码。场景切换既代价昂贵又令人沮丧。我希望尽可能避免让专职的测试人员再次查看“相同的”更改。

! Q4 d7 u. U( ^" i; m9 x
我不喜欢必须修复 bug。部分原因是 Bug 会让人觉得是我之前的失败造成的。另一个原因是我更愿意去研究新的东西。
; p( J& Y& k3 `. k
还有什么比修 bug 更惨的呢?
就是反复修同一个 bug。

2 w$ i8 x2 u, u" E
我花时间确保任何一次遇到的 bug 都能完全修复,这样就不需要不止一次的面对、调查、修复和测试。

. B' Y* a, X# z6 @9 ~" X. b
赞 收藏 评论0 发布时间:2020-8-29 23:20

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版