配置管理

  配置管理在软件开发项目中极其重要,它记录了软件开发流程的演进过程。它能够实现软件增量式开发,并随时可以追溯或查看任意时间的软件版本。持续集成一书中对配置管理是这样定义的:

  配置管理是指一个过程,通过该过程,所有与项目相关的产物,以及它们之间的关系都被的定义、修改、存储和检索。

  那么我们怎么做配置管理?

  (一)版本控制

  (1)首先我们需要一个版本控制系统,Subversion、Mercurial或者Git,对于一个分布式的团队好优先选择Mercurial或者Git。

  (2)把软件开发有关的所有内容进行版本控制。包括源代码、数据库脚本、构建脚本、部署脚本、文档、第三方依赖、MindMap等等。保证新加入的成员能够很容易地从零开始工作,保证在新的测试或者生产中能轻松部署应用。

  (3)频繁提交代码到主干。为了验证修改的正确性,快速的得到反馈,以及能够轻松地回滚到某个无错误的版本,提倡频繁提交。

  (4)提交注释清晰明了。构建失败时,为了能够通过版本控制器查询是谁破坏了构建,以及他做了哪些修改,提交代码的时候必须使用意义明显的提交注释。建议第一段是简短的总结,第二段是描述更多的修改细节。

  (二)依赖管理

  第三方库文件是常见的依赖,我们可以在本地建一个外部依赖库的副本来统一管理所有依赖,如果你使用Maven,你可以这样做。

  (三)环境配置

  软件终的运行环境可能不止一个,而且每个软件都会依赖的硬件、软件、基础设施或者外部系统才能工作。我们必须把环境配置自动且可靠化,可以借助Puppet或者CfEngine之类的工具软件。

  持续集成

  敏捷宣言首要原则是尽快的交付可工作的软件到客户手中,为了实现这一原则,控制成本并及早的验证修改的正确性和快速得到反馈,提倡使用持续集成方法。

  准备工作:

  (1)版本控制

  (2)自动化构建

  (3)持续集成系统(Jenkins,Go,TeamCity等等)