现代C++软件架构:方法与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3.2 意外架构

未能跟踪开发是否遵循所选择的架构或未能对架构进行有意识的规划,往往会导致所谓的意外架构(accidental architecture)。即使在其他领域应用了最佳实践(如进行了测试或遵循了特定的开发文化),意外架构也可能发生。

有几个反模式(anti-pattern)表明架构是“意外的”。类似于“大泥球”的代码是最明显的一个。拥有上帝对象(god object)[1]是另一个重要的标志。一般来说,如果软件耦合得比较严重——可能还有循环依赖的问题(但一开始并非这样),那么这就是一个重要的信号,它告诉你需要在架构设计上投入更多精力了。

现在,我们描述一下架构师必须掌握什么才能交付可行的解决方案。