程序员最重要的技能:知道什么时候不写代码( 三 )

必须被测试和调试的代码

会增加软件缺陷的代码

可能会在将来引入新 bug 的代码

正如 Rich Skrenta 所写的,代码是我们的敌人:

代码可谓是邪恶的。代码会腐烂。代码需要定期维护。它们总是包含有待发现的 bug。而新特性的添加总是意味着旧代码必须进行调整。

代码量越大,bug 所能藏身的地方就越多,且 checkout 或编译代码所需的时间就越长,而新员工理解这个系统所需要的时间就越长。这还意味着,如果你需要重构代码,需要挪移更多东西。

此外,更多的代码通常意味着程序拥有更少的灵活性和更少的功能。这一点乍一看是违反直觉的,但确实很多时候,较之一个才华平庸的程序员所编写的冗长混乱的代码,一个简单优雅的解决方案能运行更快,且其功能会更通用。

代码都是由程序员编写的。所以编写更多的代码往往需要更多的程序员。而程序员之间的沟通成本是以 n2的速度增长的,然后,这些程序员写的所有代码都添加到系统,在扩大系统功能的同时,也会增加整个软件工程的运营成本。

推荐阅读