C++编程规范
C++ coding standards
Author
Herb Sutter 《Exceptional C++ Style》 《Exceptional C++》 《More Exceptional C++》
Andrei Alexandrescu 《Modern C++ Design》 Loki
组织和策略问题
如果人们按照程序员编程的方式修建房屋,那么一只啄木鸟就能毁灭整个文明。 ——Gerald Weinberg
第3条 使用版本控制系统
摘要
使用版本控制系统(Version Control System, VCS)
永远不要让文件长时间地登出
在新的单元测试通过之后,应该频繁登入
确保登入的代码不会影响构建成功
讨论
几乎所有大一点的项目都需要不只一个开发人员和一周以上的开发时间。在这样的项目中,需要比较同一文件的各个历史版本,以确定修改是何时(以及/或者由谁)进行的;需要控制和管理源代码的变更。
如果有多个开发人员,他们将会并行地进行修改,可能会在同一时间修改同一文件的不同部分。此时,就需要能对文件进行自动登出/版本管理的工具了,有些情况下还需要并发编辑的合并功能。版本控制系统能够自动化和控制登出、版本管理及合并操作。版本控制系统能够比人工实施更快更正确。而且我们也不需要在管理琐事上浪费时间——编写软件才是我们的工作。
即使是单独工作的开发人员,也有脑子短路的瞬间,需要搞清楚何时为什么引入了某个错误或者进行了某个修改。版本控制系统能够自动地跟踪每个文件的历史,使我们能够“让时光倒流”。问题并不在于你是否需要从历史中寻找答案,而在于你何时需要(这只是迟早的事)。
不要破坏构建。版本控制系统中的代码必须总能构建成功。
许多其他的版本控制系统产品要么将CVS作为模仿的标准,要么是以其为基础在构建新的功能。
例外情况
只有一个程序员且从头至尾只需一周的项目,可能不需要版本控制系统。