Software Design

软件体系结构不会优雅地老化。软件体系结构的退化与软件本身的改动数量成正比:缺陷修复会腐蚀软件的层次,新特性会使设计产生应力。确定什么时候软件体系结构退化到该重新设计或重写一个模块是一个很难的决定。一方面,在设计退化时,维护和开发变得更困难,最终变成一个老化的软件。它的每次发布只能靠一群暴力测试者来维持。因为没有人知道该软件内部是怎么工作的。另一方面,用户会强烈抱怨根本性改动带来的不稳定和不兼容。作为一个软件架构师,你唯一的保证是无论选择那条路,总有人对你不满。