SRE:Google运维解密
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

我绝对不放弃我的代码

因为工程师也是人,他们经常对于自己编写的代码形成一种情感依附,这些冲突在大规模清理源代码树的时候并不少见。一些人可能会提出抗议,“如果我们以后需要这个代码怎么办?”“我们为什么只是把这些代码注释掉,这样稍后再使用它的时候会更容易吗?”“为什么不增加一个功能开关?”这些都是糟糕的建议。源代码控制系统中的更改反转很容易,数百行的注释代码则会造成干扰和混乱(尤其是当源文件继续演进时);那些由于功能开关没有启用而没有被执行的代码,就像一个定时炸弹一样等待爆炸,正如Knight Capital的痛苦经历(参考“Order In the Matter of Knight Capital Americas LLC”,文献[sec13])。

极端地说,当你指望一个Web服务7×24可用时,在某种程度上,每一行新代码都是负担。SRE推崇保证所有的代码都有必须存在的目的的实践。例如,审查代码以确保它确实符合商业目标,定期删除无用代码,并且在各级测试中增加代码膨胀检测。