`
saybody
  • 浏览: 903547 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

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

阅读更多

提到软件配置管理模式,大家一定会想到那本书软件配置管理模式,但是如果只是说“模式”,无疑最有名的是“设计模式”,的确,这些模式都有着一脉相承的关系。软件配置管理模式这本书的主要作者是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/

分享到:
评论

相关推荐

    SVN分支管理模式解析.docx

    单主干多分支-并行开发模式 - **使用场景**:适合需要频繁修复前一个版本的bug,并同时开发新版本的项目。 - **结构模式**:同样包括主干(Trunk)、标签(Tags)和分支(Branches)。 - **规则模式**: - **权限...

    Git学习文档之一学习文档-并行开发

    Git 是一个分布式版本...总的来说,Git 的并行开发模型促进了团队间的协作,减少了集成过程中的摩擦,提高了软件开发的生产力。通过合理利用Git的分支和远程仓库功能,开发者可以实现灵活、高效且协调一致的开发流程。

    svn分支管理

    SVN(Subversion)是一种广泛使用的版本控制系统,它在软件开发中扮演着至关重要的角色,尤其是在团队并行开发中。分支管理是SVN的核心功能之一,它允许开发人员在不影响主分支(通常称为trunk)的情况下进行独立...

    高级软件人才培训专家-7月27日Java直播-GitFlow

    - **并行开发**:通过隔离开发分支,可以同时进行多个功能开发而不影响主线进度。 - **协作友好**:每个功能分支都是独立的沙箱,便于多人协作。 - **发布管理**:通过Release分支集中管理和准备新功能的发布。 ...

    分支开发规范.docx

    特别是采用敏捷开发模式的企业,在快速迭代的过程中,如何有效地管理多个并行的开发任务、确保代码的质量以及实现快速的版本迭代,成为了一项挑战。本文档将详细介绍一种适用于PC和APP统一的分支管理方法,旨在帮助...

    Git-2.12-64-bit 开发使用工具

    Git是世界上最先进的分布式版本控制系统,广泛应用于软件开发和项目协作中。Git-2.12-64-bit 开发使用工具是指适用于64位操作系统的Git版本2.12,这个版本提供了完整的Git功能,包括代码版本管理、分支管理、合并、...

    用SVN分支管理多版本

    在软件开发过程中,随着项目的迭代更新,如何高效地管理不同版本之间的代码成为了项目管理中的一个重要环节。Subversion(简称SVN)作为一款广泛使用的版本控制系统,提供了强大的分支管理功能,帮助开发者实现多...

    git分支管理规范说明资料

    Git 分支管理是软件开发中的重要实践,它有助于团队协作,确保代码质量,并维护项目版本的稳定。以下是对Git分支管理规范的详细说明: **WHY:为什么进行分支管理** 1. **控制代码提交权限**:通过分支管理,可以...

    clearcase在Windows下建分支步骤

    在IBM的ClearCase版本控制系统中,创建分支是软件开发中常见的操作,特别是在Windows环境下。分支允许团队在不影响主线开发的情况下并行工作。以下是在Windows下使用ClearCase建立分支的详细步骤: 1. **打标签**:...

    软件项目开发中的环境配置和分支策略.pdf

    在软件项目开发中,环境配置和分支策略是关键要素,它们直接影响着开发效率、测试质量以及产品的稳定性。本文将详细探讨几种常见的环境配置和分支...选择合适的策略并不断优化,是每个软件开发团队都需要关注的重点。

    用于提供高级存储库操作的 Git 扩展的集合 文森特·德里森的分支模型

    GitFlow 是一种流行的 Git 分支模型,由 Vincent Driessen 提出,旨在为软件开发团队提供一套高效协作的流程。这个模型重点在于管理和组织不同类型的分支,以支持复杂项目的开发、测试、集成和发布。GitFlow 的核心...

    分支模式在SVN环境下的应用

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

    TortoiseSVN 分支与合并操作

    在软件开发中,分支管理和合并是至关重要的功能,能够支持团队并行开发,同时保持代码的一致性和完整性。下面我们将详细探讨TortoiseSVN中的分支与合并操作。 ### 1. 创建分支 创建分支的主要目的是为了解耦开发...

    eclipse中利用svn创建、合并、切换分支

    合并分支是软件开发中常见的操作之一,它能够帮助开发者整合不同分支上的代码变更。 1. **准备合并**: - 在合并分支之前,请确保当前的工作区是最新的状态,即执行`Update`更新操作。 - 同样,如果本地有未提交...

Global site tag (gtag.js) - Google Analytics