第8章 管理代码

和多个人一起开发软件,是比较困难的。一切都变慢了,而且举步维艰。出现这种问题,原因有很多。本章将揭示这些原因,并将尝试提供一些方法来对抗它们。

本章分为两部分,分别解释:

  • 如何使用版本控制系统。
  • 如何建立持续的开发过程。

首先,因为代码库的规模急剧扩张,所以,跟踪所有的变化就显得非常重要,尤其是当许多开发人员使用它时。这就是版本控制系统的作用。

接下来,几个没有直接联系在一起的聪明人仍然可以在同一个项目上工作。他们有不同的角色并且做着不同方面的工作。然而,缺乏全局可见性可能会造成很多困惑,不知道将要做什么也不清楚别人在做什么。这是不可避免的,但是使用一些工具可以提供连续的可见性,并缓解这些问题。使用一些持续开发过程工具,诸如持续集成持续交付,就可以完成。

现在我们将详细讨论这两个方面。

版本控制系统(Version Control System,VCS)提供了共享,同步和备份任何类型文件的方法,它们分为两类。

  • 集中式系统。
  • 分布式系统。

集中式版本控制系统基于保存文件的单个服务器,并允许人们签入和签出对这些文件所做的更改。原理很简单,每个人都可以得到他/她的系统上的文件的副本,然后对它们进行更改。从那里,每个用户可以向服务器提交(commit)他/她的更改。这些更改就会生效,修订版本(revision)号也随之增加。其他用户可以通过更新(update)同步他们仓库(repository)的副本来获取这些更改。

仓库贯穿所有的提交,系统将所有修订版本存档到数据库用以撤销任何更改,也可以提供已完成的操作的信息,如图8-1所示。

在集中式配置中的每个用户负责将他/她的本地仓库与主仓库同步以便获得其他用户的更改。这意味着当本地修改的文件被其他人更改和签入时,可能会发生一些冲突。在用户系统上,有一种冲突解决机制可以处理这种情况,如图8-2所示。 ...

Get Python高级编程(第2版) now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.