
138
|
第
18
章
要诀
不要试图让代码不可改变。如果产品中有不可更改的代码,那么产品
就会腐化。
当最初的作者离开项目,没有人完全理解对业务关键的遗留代码时,我们就会看到死亡
僵硬的状态。当遗留代码难以修改,甚至无法对遗留代码做出可靠的估计时,程序员会
避开代码的核心地带。从此它会变成一个不受拘束的“代码荒原”,在那里,“数字野兽”
无拘无束地游荡。为了以一种及时和可预测的方式工作,新的功能被作为卫星模块添加
在系统的边缘。
当产品被发布到生产服务器上,每天都有许多客户端使用时,我们也会看到死亡僵硬的状
态。最初的系统
API
之所以仍然被广泛使用,是因为更改它们成本太高,不过,现在仍然
有许多其他团队或服务依赖于它们。
代码
绝对
不应该静止不动。没有代码是神圣的,也没有代码是完美的,它怎么会静止不动
呢?软件周边的世界在不断变化。无论最初是如何煞费苦心地确认需求,需求总是处于不
断变化的状态。产品版本
2.4
与版本
1.6
的差异如此之大,以至于内部代码结构
有可能
完
全不同。我们总是在旧代码中发现需要修复的新
bug
。
当代码变成一种束缚时,你
不是
在开发它,而是在与之斗争。你将永远围绕着坏死的逻辑
跳舞,围绕着不可靠的设计来进行更加晦涩难懂的规划。
要诀
你是软件的主人,一切尽在你的掌握之中。不要让代码或流程来决定
项目如何发展。
18.1
大胆地改
当然,害怕对软件造成破坏是无可厚非的。大型软件项目包含许多必须掌握的细微之处和
复杂性。谁都不想由于修改过于草率而引入
bug
。没有人希望在不明就里的情况下贸然做
出变更。那是不负责任的编码方式。 ...