美文网首页
抽象模拟分支

抽象模拟分支

作者: 龙翱天际 | 来源:发表于2020-06-11 17:10 被阅读0次

BranchByAbstraction

“抽象模拟分支”是一种允许您在定期发布系统的同时,仍可逐步对软件系统进行大规模更改的技术。

以下是使用“抽象模拟分支”技术逐步替换依赖项的过程:
软件系统的各个部分都依赖于我们希望替换的模块,库,框架或类(为便于描述后面用“供应商”指代)。

image

创建一个抽象层,供应商继承(依赖)抽象层,选取一个依赖供应商的客户代码,调整该客户代码以通过抽象层调用供应商。

image

逐渐将所有客户代码移到使用抽象层,直到与供应商的所有交互都由抽象层完成。在此过程中,我们可以借此机会通过此抽象层来提高单元测试范围。

image

我们建立了一个新的供应商,该供应商使用相同的抽象层来实现一部分客户代码所需的功能。准备就绪后,我们将切换客户代码的该部分以使用新的供应商。

image

我们逐步换掉有缺陷的供应商,直到所有客户代码都使用新的供应商。一旦不需要有缺陷的供应商,我们可以将其删除。一旦不再需要抽象层进行迁移,我们也可以选择删除抽象层。

image

我上面的描述描述了一个常见的情况,但是可能会发生很多变化。有时,您不能只交换某些客户的供应商,而是必须一次完成所有工作。有时您可以将供应商的功能分解为不同的子组件,并一次执行一个子组件的整个过程。

尽管有这些变化,但是有一个共同的主题。使用抽象层允许多个实现在软件系统中共存。使用一个抽象和多个实现的概念来执行从一个实现到另一个实现的迁移。确保系统始终都能正确构建和运行,因此在进行替换时,您可以继续使用Continuous Delivery。寻找尽可能多的逐渐进行更改的方法。

进一步阅读

利用“抽象分支”做增量式大规模软件改造

FeatureToggles:在构建新功能时,我们可以使用FeatureToggles在测试环境中运行新供应商,并将其行为与有缺陷的供应商进行比较。

相关文章

  • 抽象模拟分支

    BranchByAbstraction “抽象模拟分支”是一种允许您在定期发布系统的同时,仍可逐步对软件系统进行大...

  • 前端架构

    应用 构建模板结构 模拟同步数据 模拟异步数据 git 分支操作 git check out 切换分支: git ...

  • JDK5-枚举

    使用普通类模拟枚举 使用抽象类模拟枚举 使用抽象类模拟可以免除toString()写大量的if-else语句,不需...

  • 使用eclipse的git插件合并分支,并解决冲突

    模拟需求: 将dev分支合并达到master分支, 并解决冲突, 然后提交. 先切换到master分支: 在项目上...

  • Python程序设计思维练习---体育竞技分析

    体育竞技分析:模拟N场比赛计算思维:抽象 + 自动化模拟:抽象比赛过程,自动模拟N场比赛,当N越大时,比赛结果分析...

  • "体育竞技分析"问题分析

    体育竞技分析:模拟N场比赛 - 计算思维:抽象+ 自动化 - 模拟:抽象比赛过程+ 自动化执行N场比赛 - 当N...

  • 修改git commit message

    模拟场景 这里做了两次代码提交,都push到远种仓库分支,但是当我们把当前分支合并到主分支时发现,push失败 ~...

  • python抽象基类abc

    python中并没有提供抽象类与抽象方法,但是提供了内置模块abc(abstract base class)来模拟...

  • 组合模式 示例

    抽象类 叶子类 Image 叶子类 Txt 分支类 Folder 编写测试 验证输出

  • 将一个分支的某个修改点同步到另一个分支( cherry-pick

    例:把feature_V3.1.4模拟练习分支最近一次修改点同步到feature_V3.4.0江苏分支 1.查找c...

网友评论

      本文标题:抽象模拟分支

      本文链接:https://www.haomeiwen.com/subject/unwbtktx.html