持续集成开发模式.pdf
《持续集成开发模式.pdf》由会员分享,可在线阅读,更多相关《持续集成开发模式.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Hansky Document-1-使用配置管理工具进行持续集成开发 1.持续集成与现代软件开发 早期的软件开发模式是由程序员负责编写不同的模块,在软件项目完成之前,一次性的把各个模块集成在一起,再进行测试。我们称这种集成方式为“big-bang”的集成方式。使用该种集成方式的项目团队把软件集成安排在开发阶段的后期,一般是应用“瀑布式(Cascade)”开发模式。在项目后期才开始对软件进行集成,会为项目引入很多的未知因素和巨大风险程序员往往发现越来越多的 Bug 等待他们去修复。这种集成方式很有可能会威胁到软件项目的成功。随着市场竞争的日益激烈,对软件产品的发布要求越来越高、越来越频繁,这种“
2、big-bang”的集成方式已经不能满足开发团队的需求。取而代之的持续集成的开发方式“Continuous integration”。持续集成可以有效地解决软件开发过程中的许多问题,可以有效的确保软件质量,减小项目的风险,使得软件开发团队从容面对各种各样的变化。持续集成在现代软件开发中扮演着非常重要的角色。使用持续集成策略的团队,可以发现持续集成可以为软件开发带来如下好处:第一:可以尽早发现由于软件集成所带来的 Bug,及时进行更正。原因在于由软件集成而引入的 Bug 一般涉及到两个或多个程序员书写的代码,相对来说比较难于 Debug。如果不及早进行集成,就不能发现该 Bug;一旦集成之后,发
3、现该 Bug,就要花费大量的资源来进行 Debug。但是如果使用持续集成,这种 Bug 在被引入的初始阶段就能够被发现,程序员可以检查相对少的源代码就可以更改该 Bug,这时所付出的代价是最小的。第二:还可以有效的避免程序员在错误的路线上越走越远,以至于在项目后期为其付出巨大的代价。举例来说:Tom 和 Jerry 分别工作在不同的模块 A 和 B 上,其中 A 模块需要依赖 B 模块中的代码。如果 B 模块中的程序有错误,则会影响到 A 模块。如果 Jerry 在开发 B 模块的过程中引入了 Bug,使得 Tom 开发 A 模块是工作在一个错误的基础上。如果两人的程序长时间不进行集成,则 T
4、om就会在错误的开发路线上越走越远。持续集成可以有效的降低由于软件集成所带来的风险。目前已经作为许多流行的软件开发理论的基础组成部分,例如 XP,Staging Delivery,RUP 中的迭代开发等等。许多软件公司都使用“Nightly Build”,或“Daily Build”等方式来强制程序员每天至少进行一次集成(Microsoft 就是使用 Daily Build 的方式进行持续集成的)。实践已经证明,持续集成对于提高软件质量,针对软件开发项目进行有效的风险管理有着不可替代的作用。持续集成的意义在于使项目随时具有一个明确的“最近状态”。项目团队中的成员的所有工作都是建立在该状态之上的
5、:程序员基于该状态编写代码;测试人员针对该状态进行软件测试。更为重要的是项目管理人员可以根据项目的最新状态对项目的进度、风险、Hansky Document-2-资源使用情况等进行有效的评估,为最终的项目成功打下坚实的基础。另外,现代软件开发语言(例如:C、C+,Java 等)决定了持续集成的重要性。在这些语言中,往往是由多个源程序文件来完成某一特定的功能;每一个源代码文件也往往不是只服务于某一个单一系统功能。而这些程序文件往往不是由同一个程序员编写,如果这些源代码文件不是经常的进行集成,则必然在最终的集成过程中为开发团队带来巨大的麻烦,很有可能造成 Build Break。2.配置管理工具对
6、持续集成的支持 配置管理工具(版本控制工具)是任何规模的开发团队中必不可少的工具之一。使用合适的配置管理工具可以很好的帮助开发团队进行持续集成开发。在使用持续集成的团队中,代码开发、源程序检入、单元测试的过程一般如下:Step1:程序员建立本地工作区。从版本控制工具的存储库中得到项目的所有文件。一般来说,本地工作区和存储库具有相同的目录结构,或是存在某种特定的关联关系。Step2:程序员更新本地工作区,使得本地工作区中的文件都更新到最新状态。Step3:程序员检出源代码文件。Step4:程序员更改源代码,进行单元测试。Step5:程序员更新本地工作区,得到其他用户的更改,进行单元测试。如果有冲
7、突发生,需 要解决冲突。Step6:在单元测试通过之后,程序员检入源代码文件。在这里,我们可以看到程序员在开始工作之前,首先要更新本地工作区,使得自己的开 发工作是建立在项目的最新状态之上。在开发工作完成之后,代码检入之前,还要再次 更新本地工作区,进行单元测试,其目的是确定本地更改不会和其他程序员的更改发生 冲突,能够有效地集成在一起。之后,程序员把本地更改的文件检入到版本控制工具的 中央存储库,进行持续集成,项目的最新状态也随之更新,以便其他用户使用。由以上过程说明我们可以清楚的看到,在使用该开发模式的团队中所使用的配置管理工具必须具有以下几个特点:?整个项目的所有受控文件应该存储在统一的
8、、明确的代码树中(One Source Tree)。?程序员使用版本控制工具可以很方便地得到当前项目的全套最新代码。?程序员能够方便地更新本地工作区(Workspace),得到其它人所作的更改。?代码树记录着当前项目的最新状态,并且可以方便地回溯受控文件的历史版本。?很好的支持三方归并(3-Way Merge)。现在流行的一些配置管理工具,都可以支持上表中的的功能。这些配置管理工具包括:CVS、VSS、Firefly、ClearCase 等等。现代软件开发过程中,“并行开发(Parallel Development)”已经成为大部分开发团队所必须接受的现实。开发团队经常需要一边开发新版本的软件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 持续 集成 开发 模式
限制150内