C++编程规范
C++ coding standards
Author
Herb Sutter 《Exceptional C++ Style》 《Exceptional C++》 《More Exceptional C++》
Andrei Alexandrescu 《Modern C++ Design》 Loki
组织和策略问题
如果人们按照程序员编程的方式修建房屋,那么一只啄木鸟就能毁灭整个文明。 ——Gerald Weinberg
第2条 使用自动构建系统
摘要
一次按键就解决问题:使用完全自动化(“单操作”)的构建系统,无需用户干预即可构建整个项目。
讨论
单操作的构建过程非常重要,它应该能将源文件可靠和可重复地转换为可以交付的软件包。
不应该将时间和精力浪费在机器可以干得更快更好的事情上,自动、可靠、单操作的构建是非常必要的。
成功的构建应该无声无息,不产生任何警告。
理想的构建过程不会出现干扰,只会出现一条日志信息:“构建成功”。
构建有两种模式:增量构建和完全构建。
增量构建只重新构建上次构建(可以是增量的或者完全的)以来发生改变的部分。
注意:两次连续增量构建中的第二次构建不应该编写任何输出文件;
否则,可能会出现依赖循环,构建系统也可能会执行不必要的操作。
——比如,编写假的肯定要丢弃的临时文件。
一个项目的完全构建可能有不同形式。可以考虑通过改变许多基本特性,调整构建过程的参数
————候选的特性包括:目标架构,调试模式还是发布模式,以及范围(基本文件、所有文件、还是完整的安装文件)。
一种构建设置能够生产产品的基本可执行文件和库,另一种设置可能还会生成附属文件。
而完全构建则可能生成包括所有文件、第三方可重发行文件和安装代码在内的安装文件。