知识卡片

死代码比活代码更危险

普通读书笔记卡 · 1585

内容

面对要删除的旧代码,”注释掉”“留个功能开关以防以后要用”是常见但糟糕的处理方式:版本控制系统 能轻易撤销任何删除,大段注释代码只会在文件演进中造成阅读干扰;挂着未启用功能开关的代码更 危险,它像一颗定时炸弹,可能在不被预期的时刻意外触发——正如Knight Capital因遗留旧交易逻辑 代码被意外激活而蒙受重大损失。系统要保障7×24可用,每一行代码都是需要被验证存在理由的负担, 该删就彻底删。

参考来源

- 位置:《SRE:Google运维解密》第9章《简单化》"我绝对不放弃我的代码"一节(源文件:_epub-src/OEBPS/Text/0008_0007.xhtml) - 结论依据:原文指出注释代码和功能开关是糟糕做法,版本控制可轻易撤销删除,未启用功能开关的代码像定时炸弹,并引用Knight Capital因遗留代码被意外激活而遭受损失的案例(文献[sec13])作为佐证;原文未给出具体损失金额。 - 原始内容:“源代码控制系统中的更改反转很容易,数百行的注释代码则会造成干扰和混乱……那些由于功能开关没有启用而没有被执行的代码,就像一个定时炸弹一样等待爆炸,正如Knight Capital的痛苦经历。”