分支模式-并行软件开发的分支模式

提到软件配置管理模式,大家一定会想到那本书软件配置管理模式,但是如果只是说“模式”,无疑最有名的是“设计模式”,的确,这些模式都有着一脉相承的关系。软件配置管理模式这本书的主要作者是Stephen P. Berczuk,他在1998年时参与了ChiliPLoP ’98,在这次会议中,确立软件配置管理模式的一些重要成果,例如后面我们说的配置模式的分类。在这之后,几位专家一起合作形成了一份很重要的论文:“Streamed Lines: Branching Patterns for Parallel Software Development”,这篇论文也成为软件配置管理模式这本书的一个主要的题材来源。本文就是对这篇论文的一个介绍,我和几位朋友会一起合作完成了完整的翻译,为大家提供一个更原始的配置管理讨论。

并行软件开发是企业级环境下软件开发的一种不可避免的模式,这种开发模式可以说是任何大中型软件产品和项目所必需的。然而,并行开发在为我们的开发效率提高保证的同时,也会给我们的开发管理带来诸多问题:

  • 什么时候进行分支?
  • 什么时候进行合并?
  • 如何选择有效的分支策略?
  • 如何保证不同分支上的代码同步问题?
  • 如果建立对分支访问控制的授权机制?
  • 如何避免频繁的合并冲突?
  • 如何处理被复用的代码?
  • ......

可以说并行开发中的分支与合并是一个涉及到环境、方法和技术平台等诸多因素的综合性难题,在这种场合下,“模式(Pattern)”可能是解决上述问题的一个很好的工具。所谓模式,其实就是解决某一类问题的方法论。你把解决某类问题的方法总结归纳到理论高度,那就是模式。Alexander给出的经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。

在不同的领域有不同的模式,具体到并行开发领域,“分支模式”是专门针对并行开发环境下分支及合并作业中的各种不同的操作方法抽象出来的一套方法论。其主要由以下几部分组成(如下图所示):

  • 结构模式——通过约束和指导分支/代码线的整体结构,实现并行开发的组织结构、开发模式及开发过程的约束和指导。
  • 规则模式——通过对特定分支/代码线实施的约束,实现对该分支/代码线相关的操作进行约束,如访问控制及合并等操作的约束。
  • 创建模式——提供对分支/代码线创建的约束
  • 反模式——以反例的方式展示并行开发中常见的行为误区和陷阱,并提供有效的解决方案。

分支模式在并行开发中的应用难点有两个:一是如何根据企业的实际情况选择适合的分支模式,二是如何构建一个技术平台来将这些分支模式的理论和方法有效的应用于实践。为此,我们专门在此开辟专栏和大家分享并行开发中分支模式相关的理论、方法以及如何将这些理论和方法付诸实现的相关实践。

本专题主要内容源自Brad Appleton 、Stephen P. Berczuk、Ralph Cabrera 、Robert Orenstein 于PLoP‘98 会议上发表的“Streamed Lines: Branching Patterns for Parallel Software Development” ,阿良、Microke进行了前期少量的翻译工作,Rocksun完成了后期大部分的翻译工作。

相关资源:http://process2.cn/

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页