iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 25
1
DevOps

Git 其然,Git 其所以然系列 第 25

Integrate:Branch By Abstract

# Outline
一、前言
二、論述
A、待敘項目

# TL;DR

Branch By Abstraction (BBA) 是一個在版本控制中早就流傳已久卻鮮為人知的推薦實踐,因此在 2007 年 Paul Hammant 寫文介紹了這個概念並且命名為 Branch By Abstraction,Martin Flower 也在 2014 年時寫文章說明。

BBA 的核心概念就在於,用程式架構面的抽象來取代原本習慣在版本控制系統進行的事情,不再透過分支去管理那個 feature 何時要併回主線去發佈,去減少整合上的成本。

比如說我今天有一個元件 A 想要更改實作,我那我就會先在 A 與相依 A 的元件中間建立一個抽象層,然後開始相依該抽象層去編寫新的實作 B,再把原本參考 A 的元件改成 B,最後就可以把 A 給廢棄了。

這樣的好處在於,透過抽象層的建立,我們得知新的元件應該要實作哪些介面才可以在取代原先元件時無縫接軌,然後我們就可以不斷的編寫新的元件,不怕影響到現有程式的穩定,並透過單元測試確保新元件的品質。所以我們就不再需要分支去隔離新元件和舊元件同時存在的版本,也不怕為了隔離新元件剛開始開發而無法發佈的期間產生多餘的整合成本。


上一篇
How Git Decentralized
下一篇
Git Stash
系列文
Git 其然,Git 其所以然31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言