C++不仅仅是C的扩展。编译单元内的循环链接时依赖可能会破坏可理解性、可测试性和重用性。不必要的或过多的编译时依赖可能增加编译成本并破坏可维护性。当项目规模变大时,采用紊乱的、不规范的、不成熟的C++开发方法,这些问题一定会出现。
大部分有关C++设计的书籍只讲逻辑问题(像类、函数和继承)而忽略物理问题(像文件、目录和依赖)。然而,在大型系统中,物理设计的质量将影响许多逻辑设计决策结果的正确与否。
重用并非没有成本。重用意味着耦合,而耦合可能是有害的。不必要的重用应该避免。
质量有多个维度:可靠性、功能性、可用性、可维护性和性能。这些维度决定了大型项目的成败。
达到质量要求是一个项目的责任,从一开始就必须积极追求质量。质量不是在一个项目大体上完成后才被添加的东西。质量必须是整个设计过程的不可或缺的一部分,这样QA组织才是有效力的。
最后,好的工具是开发过程的重要组成部分。但是工具不能弥补大型C++系统中内在的设计质量缺陷。这本书就是关于如何在设计中避免这种质量缺陷的。