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

DevOpsDays Taipei 2023 Trunk Based Development

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for MilesChou MilesChou
September 25, 2023

DevOpsDays Taipei 2023 Trunk Based Development

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

Avatar for MilesChou

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 相同) • 程式碼擁有權