将漏洞转化为功能
提升至特色
潜在问题
有什么想法?
今天早上我看到MonkeyUser的帖子时忍不住笑了……
然后我开始思考:这件事真的能做到完美吗?真的能把一个缺陷升级成一个功能,而且是经过深思熟虑、有意义地升级吗?
我们常常把bug说成是代码里真的存在着类似小妖精之类的东西,但它们通常只是实现逻辑上的缺陷。我们本来想做X,结果却做了Y。
如果其中一些错误实际上是美丽的意外呢?
提升至特色
我设想的候选漏洞应该是玻尔漏洞,其结果是可预测的,但目前是意料之外的(而且可能是不希望发生的)。
例如,想象一下图形用户界面 (GUI) 中的一个列表视图。当您点击按钮时Add Item,会显示另一个项目……但之前选中的行的内容却意外地被包含在内。用户现在必须记住更改所有这些内容。哎!这真是个 bug。
通常的做法是重写按钮的代码Add Item。但如果换个思路,把按钮及其代码重命名呢?这样就把 bug 升级成了功能。Duplicate Item然后,你再回头重新定义一个全新的按钮,让它的行为符合最初的预期。Add Item
这当然是一个极其简单且显而易见的例子,但道理是一样的。我们究竟错失了多少这样的机会?
潜在问题
与此同时,我认为如果操作不当,可能会出现一些潜在问题:
-
即使将缺陷转化为功能,其实现过程仍需充分理解和测试。您肯定不希望这个新的“功能”产生副作用或出现其他意想不到的行为。
-
不应该用这种方法掩盖真正的错误。即使你最终能够改进并充分利用代码,也要为糟糕的代码承担责任。
有什么想法?
您怎么看?这真的错失了改进代码的机会吗?可能存在哪些问题?应该如何做才能成功,或者根本就不应该做?
来自MonkeyUser、Abstruse Goose和CommitStrip 的漫画。
文章来源:https://dev.to/codemouse92/turning-bugs-into-features-48gl


