iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Software Development

重新認識主幹開發(Trunk-Based Development) 系列

主幹開發是一種讓開發者在一個共同的主幹分支上協作的開發方式,透過把變更拆小、頻繁整合,減少長期分支帶來的整合負擔,並讓程式碼維持隨時可發布的狀態。過去有聽過朋友對於主幹開發的印象是「不開分支」或「直接把程式碼推上主幹」。

「是這樣!但不是這樣!」

要做到這件事會比看起來的難很多。過程中會遇到各種問題與挑戰,例如:如何保護主幹?尚未完成的功能怎麼先合併?長期的改版計劃又該如何逐步進行?

本系列將用 30 天,從基本觀念到實務情境,深入介紹主幹開發的做法、適用條件與取捨,一起重新認識這個看似簡單、卻又值得仔細研究的開發方式。

參賽天數 27 天 | 共 27 篇文章 | 4 人訂閱 訂閱系列文 RSS系列文
DAY 1

Day 01:這 30 天,一起重新認識主幹開發

提到主幹開發,你會想到什麼? 過去有聽過朋友對於主幹開發的印象是「不開分支」或「直接把程式碼推上主幹」。 我會回答:「是這樣!但不是這樣!」 確實在主幹開發的流...

2026-09-15 ‧ 由 Miles 分享
DAY 2

Day 02:版本控制的目的

2012 年的時候,我與朋友一起接了一個網站的案子,當年的我還只是個剛學寫程式的菜鳥新手。我們使用 Linux 主機架了網站伺服器(Web Server),並透...

2026-09-16 ‧ 由 Miles 分享
DAY 3

Day 03:分支與整合

查閱歷史、比較差異,是版本控制提供的基本功能。至於我們希望透過這些功能達成什麼目的,Day 2 已經有說明。 接下來,團隊成員可能需要各自從不同的版本出發,進行...

2026-09-17 ‧ 由 Miles 分享
DAY 4

Day 04:整合與驗證

原始碼合併完後,要如何確認組合後的程式正常運作? 這一篇會從「整合」的目的開始,逐步說明需要確認的事情。 整合的定義 各自完成的原始碼,放在一起後不一定能照原本...

2026-09-18 ‧ 由 Miles 分享
DAY 5

Day 05:開發者之間的距離

延續 Day 4 最後提到的問題:當完成手上的任務後,其他開發者就能立刻取得並使用修改後的程式嗎? 程式可能還在自己的分支上尚未合併;也可能已經合併,但還在等整...

2026-09-19 ‧ 由 Miles 分享
DAY 6

Day 06:團隊協作中的整合問題

當團隊各自開發的程式沒有及早整合,需求認知差異或不相容的行為,可能延遲到後期才被發現;即使程式已經完成,其他人也可能因為整合與驗證尚未完成,無法直接使用,依賴這...

2026-09-20 ‧ 由 Miles 分享
DAY 7

Day 07:主幹開發的基礎

主幹開發的英文全名是 Trunk-Based Development,簡稱 TBD,直譯是「基於主幹的開發」。 「基於主幹」指的是,大家都把主幹當作開發的共同基...

2026-09-21 ‧ 由 Miles 分享
DAY 8

Day 08:直接提交與短期分支

主幹開發強調,開發者應該要頻繁把完成的程式提交到主幹。 以下介紹兩種常見做法: 直接提交到主幹 短期功能分支 以 Git 為例,直接提交是在本機主幹...

2026-09-22 ‧ 由 Miles 分享
DAY 9

Day 09:程式碼審查的時機與回應

程式碼審查(Code Review)是透過檢視實際修改,理解目的、影響與取捨,找出需要討論或調整的地方。審查具體會用不同的方法進行,常見的做法例如:配對開發,或...

2026-09-23 ‧ 由 Miles 分享
DAY 10

Day 10:持續整合

提到持續整合,大家會想到什麼? 我第一次聽到持續整合(Continuous Integration),已經是十多年前的事了。印象中,那幾年在社群裡聽到持續整合時...

2026-09-24 ‧ 由 Miles 分享