《C++编程规范:101条规则、准则与最佳实践》——1.4使用版本控制系统

简介:

本节书摘来自异步社区出版社《C++编程规范:101条规则、准则与最佳实践》一书中的第1章,第1.4节,作者:【加】Herb Sutter , 【罗】Andrei,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.4使用版本控制系统

摘要
常言道,好记性不如烂笔头:请使用版本控制系统(Version Control System,VCS)。永远不要让文件长时间地登出。在新的单元测试通过之后,应该频繁登入。确保登入的代码不会影响构建成功。

讨论
几乎所有大一点的项目都需要不只一个开发人员和一周以上的开发时间。在这样的项目中,需要比较同一文件的各个历史版本,以确定修改是何时(以及/或者由谁)进行的;需要控制和管理源代码的变更。

如果有多个开发人员,他们将会并行地进行修改,可能会在同一时间修改同一文件的不同部分。此时,就需要能对文件进行自动登出/版本管理的工具了,有些情况下还需要并发编辑的合并功能。版本控制系统能够自动化和控制登出、版本管理及合并操作。版本控制系统能够比人工实施更快更正确。而且我们也不需要在管理琐事上浪费时间——编写软件才是我们的工作。

即使是单独工作的开发人员,也有脑子短路的瞬间,需要搞清楚何时为什么引入了某个错误或者进行了某个修改。我们都难免如此。版本控制系统能够自动地跟踪每个文件的历史,使我们能够“让时光倒流”。问题并不在于你是否需要从历史中寻找答案,而在于你何时需要。[9]

不要破坏构建。版本控制系统中的代码必须总能构建成功。

由于目前能够找到大量的版本控制系统,我们没有任何借口将其拒之门外。最廉价也最流行的版本控制系统是cvs(见本条参考文献)。这个工具非常灵活,提供了TCP/IP访问功能,可以选择增强安全性(提供使用ssh协议作为后端),可以通过脚本编程实现极佳的管理功能,甚至还有图形界面。许多其他的版本控制系统产品要么将cvs作为模仿的标准,要么是以其为基础再构建新的功能。

例外情况
只有一个程序员且从头至尾只需一周的项目,可能不需要版本控制系统。

参考文献
[BetterSCM] ● [Brooks95] §11, §13 ● [CVS]

相关文章
|
1天前
|
存储 数据采集 数据可视化
【C++】医院PACS医学图像存储和传输系统源码
图像后处理与重建 •MPR\CPR(三维多平面重建) •VRT(三维容积重建) •SSD(三维表面重建) •VE(虚拟内窥镜) •MIP(最大密度投影)、MinIP(最小密度投影) •CalSCore(心脏图像冠脉钙化积分)
11 3
|
16天前
|
监控 C++
【2021全国高校计算机能力挑战赛C++题目】17.信息整理 某机房上线了一套系统,和每台计算机都相连,以便监控各计算机相关外设的运行状态。
【2021全国高校计算机能力挑战赛C++题目】17.信息整理 某机房上线了一套系统,和每台计算机都相连,以便监控各计算机相关外设的运行状态。
|
20天前
|
存储 算法 C语言
【编程陷阱】编写出色C++代码:遵循的注意事项和最佳实践
【编程陷阱】编写出色C++代码:遵循的注意事项和最佳实践
6 0
|
25天前
|
存储 编解码 监控
【C++】医学影像PACS三维重建后处理系统源码
系统完全符合国际标准的DICOM3.0标准
15 2
|
25天前
|
存储 C++ 计算机视觉
【三维重建技术】C++医学影像处理系统源码
医学影像存储与传输系统是PACS和RIS系统完美结合在一起的综合应用系统。系统的硬件结构由高性能服务器、大容量存储设备、高速网络、各种信息采集设备、各种诊断及应用工作站组成;系统的基本结构由系统管理、图像采集传输与存贮和图像处理与辅助诊断应用三大部分构成。
30 10
|
26天前
|
算法 定位技术 C++
数据结构实训(大作业)c++模拟北斗卫星导航系统简单的迪杰斯特拉算法
数据结构实训(大作业)c++模拟北斗卫星导航系统简单的迪杰斯特拉算法
16 0
|
1月前
|
存储 算法 文件存储
C++医院影像系统PACS源码
PACS (picture archiving and communication system) 即医学影像归档与传输系统,是应用于医院环境中对医学影像数据实施计算机管理的专业化信息系统,是当今医院信息化中的重要构成部分。其基本任务是对医学影像的采集通讯、软拷贝显示、电子化归档存储、硬拷贝输出,以及与医学环境中其他信息系统(如HIS/RIS)的数据交换和通讯等过程执行网络化的管理和控制。目前,PACS系统在医院管理中发展迅速,但由于各医院的实际情况不同,所以每个医院的PACS系统也会有所差异。
20 2
|
2月前
|
C++
C++ 编程必备:对象生命周期管理的最佳实践
在C++中,对象的生命周期是指对象存在的时间段,从对象创建到对象销毁的整个过程。正确地管理对象的生命周期是编写高效、可靠C++代码的关键之一
53 1
|
2月前
|
存储 数据采集 数据可视化
【C++】PACS医学图像存储和传输系统源码带三维重建
【C++】PACS医学图像存储和传输系统源码带三维重建
24 0
|
2月前
|
存储 安全 固态存储
【C++医学影像】支持三维影像后处理PACS系统源码
【C++医学影像】支持三维影像后处理PACS系统源码
47 0

相关产品

  • 云迁移中心