Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevOpsDays Taipei 2023 Trunk Based Development

MilesChou
September 25, 2023

DevOpsDays Taipei 2023 Trunk Based Development

自從 Git 成為主流版控工具後,開分支與合併分支變成大家日常作業的一部分,但有想過開分支對於整個開發流程,有隱藏的沉默成本嗎?主幹開發推崇不開分支或是分支不要開太久,進而減少沉默成本,以達到更流暢的開發節奏。但這個過程對於團隊運作的影響會是什麼,以及該如何解決,將會在此議程分享給大家。

MilesChou

September 25, 2023
Tweet

Other Decks in Programming

Transcript

  1. Outline • 認識主幹開發(Trunk-based development)的過程 • 一 分鐘說明主幹開發是什麼? • 版本控制與分 支

    對協作的影響 • 主幹開發所提倡的做法,與實務做法分享 Ref: https://trunkbaseddevelopment.com/
  2. Source: https://trunkbaseddevelopment.com/ A source-control branching model, where developers collaborate on

    code in a single branch called ‘trunk’ *, resist any pressure to create other long-lived development branches by employing documented techniques. They therefore avoid merge hell, do not break the build, and live happily ever after.
  3. 不使 用 版控的樣 子 • 多 人 使 用 同

    一 台共 用 主機 • 多 人 共享同個資料夾
  4. 使 用 分 支 的優點與缺點 • 優點 • 別 人

    把東 西 搞壞了,影響不到我 • 缺點 • 別 人 把東 西 搞壞了,可是我不知道
  5. 團隊現況 • 維護 身 分驗證服務(Identity Provider) • 直接影響 Trunk:主管 +

    三位 工 程師的 小 團隊 • 間接影響 Trunk:PM、SRE、DBA… etc.
  6. 原 子 提交(Atomic commits) • 增量式變更(Ref: Continuous Delivery) • 不可分割的最

    小 提交 • 分割太細,提交之間會互有關聯 • 分割太粗,形成長期分 支 、Code review 變困難
  7. 實務的 Code Review 範例 • 盡可能達成每個 人 Requester 與 Reviewer

    的對象次數是平均的。 • 資深資淺,平等對待 • 大 家都有權 力 影響 code 的結果,責任是 code 壞了 大 家都有機會 面 對
  8. 主幹開發團隊的特 色 • 沒有 Code Freeze • 快速 review •

    本機建置應 用 程式 • 本機開發不依賴共 用 服務(與 12 Factor II. Dependencies 相同) • 程式碼擁有權