Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Trunk-based developmentのすゝめ
Search
Ryuichi Fukami
January 13, 2022
Programming
260
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Trunk-based developmentのすゝめ
Ryuichi Fukami
January 13, 2022
More Decks by Ryuichi Fukami
See All by Ryuichi Fukami
NEWTにおけるiOS18対応の進め方
ryu1sazae
0
1.3k
ABEMA新卒1年目を大公開
ryu1sazae
0
2.8k
Actorへの第一歩
ryu1sazae
0
1.6k
Other Decks in Programming
See All in Programming
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
180
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
420
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
9
6k
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
170
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
940
What's New in Android 2026
veronikapj
0
240
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
360
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
170
Foundation Models frameworkで画像分析
ryodeveloper
1
430
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
460
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
130
その節約、円になってますか?
isamumumu
1
660
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
330
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
470
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
Building Applications with DynamoDB
mza
96
7.2k
Scaling GitHub
holman
464
140k
Product Roadmaps are Hard
iamctodd
55
12k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
650
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
240
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
450
WCS-LA-2024
lcolladotor
0
780
Transcript
Trunk-Based Development🐯 Ryuichi Fukami @ryu1sazae @ABEMA iOSνʔϜษڧձ 2022/01/13
࣍ • Trunkͱ • Feature branch development • Trunk-Based development
• Feature branch development vs Trunk-Based development • ·ͱΊ
Trunkͱ • װɺथװɺ(टɾ࢛ࢶͱ۠ผͯ͠ମͷ)ɺମɺ(ͷͷ)ຊମɺओཁ෦ɺ • ϝΠϯɺϝΠϯϥΠϯͱݺΕΔ • ͜ͷεϥΠυͰϝΠϯϒϥϯνͷ͜ͱΛࢦ͢
Feature branch development 1. τϥϯΫ͔ΒϒϥϯνAΛ࡞ 2. ͦͷϒϥϯνAͰɺతͷ࣮͕ྃ͢Δ·Ͱɺ࡞ۀΛߦ͏ɻͦͷؒɺඞཁ Ͱ͋ΕϒϥϯνA͔Βࡉ͔͘ϒϥϯνΛΔ 3. ࣮͕ྃ
& ϦϦʔεʹؚΊͯΑ͍ͱஅ͞Εͨ߹ɺϒϥϯνAΛτϥ ϯΫʹऔΓࠐΉ(Feature f lagͰ੍ޚՄೳͳ߹ϦϦʔελΠϛϯάͰͳ͘ ͯϚʔδՄೳ)
Trunk-Based development • ιϑτΣΞ σϦόϦʔͱ৫ͷύϑΥʔϚϯεΛվળ͢ΔೳྗͰ͋Γɺ DevOpsͷҰͭ 1. ։ൃऀ͕ࣗͷ୲ࢪࡦΛINVESTͷݪଇʹैͬͯখ͞ͳόονʹׂ 2. ʮτϥϯΫ͔ΒϒϥϯνΛΓɺ࡞ۀ͕ྃ࣍ୈτϥϯΫʹϚʔδ͢
ΔʯΛόονຖʹߦ͏
INVESTͷݪଇ • ಠཱ͍ͯ͠Δ(Independent) όονຖΛՄೳͳݶΓಠཱͤ͞Δ(͋ΔόονΛଞͷόονʹґଘͤ͞ͳ͍)͜ͱͰɺνʔϜϝϯόʔ͕ҙͷॱংͰ࡞ۀΛߦ͑ΔΑ͏ʹ͢Δ • ަবͰ͖Δ(Negotiable) ϑΟʔυόοΫΛಘΒΕΔΑ͏ʹ͢Δ e.g.
ViewͷσβΠφʔ֬ೝ, ࡉ͔͍ػೳͷQA • Ձ͕͋Δ(Valuable) ؔऀʹՁΛఏڙͰ͖Δ • ݟੵΓΛՄೳʹ͢Δ(Estimable) ݟੵΓ͕Մೳ • খ͘͢͞Δ(Small) ͔࣌ؒΒͰτϥϯΫʹϚʔδՄೳ • ςετͰ͖Δ(Testable) ߦͬͨ࡞ۀ͕Կ͔͠Βͷํ๏Ͱظ௨Γʹಈ࡞͢Δ͜ͱΛ֬ೝͰ͖Δ e.g. Ϣχοτςετ, QA, ϞχλϦϯάπʔϧ, etc… ࢀߟ: https://cloud.google.com/architecture/devops/devops-process-working-in-small-batches#how_to_work_in_small_batches
Trunk-Based developmentͷϝϦοτ • ϦϦʔεΛؾʹͤͣτϥϯΫʹϚʔδͰ͖ΔτϥϯΫʹϚʔδͰ͖Δ ※ ߹ʹΑͬͯFeature f lagͳͲͷ੍ޚʹΑͬͯɺϦϦʔε൛ͰػೳΛӅ͢(= μʔΫϩʔϯν͢Δ)
ඞཁ͋Γ • όον͝ͱͷ։ൃظؒ(= τϥϯΫʹϚʔδ͞ΕΔ·Ͱͷظؒ)͕͘ͳΔ • τϥϯΫ(ϝΠϯϒϥϯν)ΛϚʔδͨ͠ࡍʹίϯϑϦΫτ͕ൃੜ͠ʹ͍͘ (ൃੜͨ͠ͱͯ͠ඍྔͰࡁΉ) • ίʔυΛৗʹ࠷৽ͷঢ়ଶʹอͭ͜ͱ͕Ͱ͖Δ • τϥϯΫʹϚʔδ͞ΕΔόον1ͭͷมߋ͕খ͍ͨ͞ΊɺόάൃੜͷϦεΫ͕ ܰݮ͞ΕΔ
Trunk-Based developmentͷσϝϦοτ • ၆ᛌͨ͠ϨϏϡʔ͕͍͠߹͕͋Δ • Feature f lagͷ੍ޚʹ͔ͳΓؾΛ͏ඞཁ͕͋Δ • ϨϏϡʔͷසΛ্͛Δඞཁ͕͋Γɺ͜ΕΛϨϏϡϫʔ͕ڐ༰Ͱ͖ͣʹɺPRͷbase-branch͕
ωετ͠ଓ͚ΕɺϝϦοτΛڗडͰ͖ͳ͘ͳΔ ↪︎ ϨϏϡʔස͕͍ͱɺ։ൃऀΑΓଟ͘ͷมߋΛ̍PRʹऩΊΑ͏ͱͯ͠͠·͏ ↪︎ มߋ͕େ͖͍ͱϨϏϡʔͷϞνϕʔγϣϯ͕Լɺக໋తͳϛεΛݟಀ͢ՄೳੑUP😭 ※ Feature branch developmentͰಉ༷ʹPRΛΓ͚͍ͯΔ߹ͲͪΒʹͯ·Δ ↓ҎԼͷ͜ͱ͕ඞཁ 1. ϨϏϡʔΛͳΔ͘ૣ͘ߦ͏จԽ࡞Γ💪 ɹ2. ϨϏϡʔͷ༏ઌॱҐΛܾΊΔ
Feature branch development vs Trunk-Based development Feature branch development Trunk-Based
development τϥϯΫʹϚʔδ͢ΔࡍʹϦϦʔεΛ ؾʹ͢Δඞཁ͕͋Δ͔ ※ Feature fragͳͲͰ੍ޚ͍ͯ͠Δ߹ࠩͳ͍ ͋Δ 🥺 ͳ͍ 🥳 ※ ߹ʹΑͬͯ͋Δ τϥϯΫʹϚʔδ͞ΕΔ·Ͱͷظؒ िؒ ~ ϲ݄ 🥺 ࣌ؒ ~ 🥳 τϥϯΫʹϚʔδޙͷόάൃੜ֬ ߴ 🥺 🥳 ίϯϑϦΫτղফίετ ߴ 🥺 🥳 ϨϏϡʔස(ϨϏϡϫʔͷෛՙ) ※ Feature branch developmentͰಉ༷ʹϒϥϯνΛΓ͚͍ͯΔ ߹ࠩͳ͍ 🥳 ߴ 🥺
Trunk-Based developmentͷ༗ޮੑͷଌΓํ 1. ΞΫςΟϒͳϒϥϯνΛνʔϜͰܾΊͨҎԼʹͰ͖͍ͯΔ͔ → ϒϥϯν͕Γଓ͚͍ͯΕɺϒϥϯνΛ࠷৽ͷঢ়ଶʹอ͍ͯͯͳ͍͜ͱʹͳΔ 2. ίϯϑϦΫτ͍ͯ͠Δ࣌ؒ(≒ ίϯϑϦΫτղফʹ͔͔Δ࣌ؒ)ͷ͞
→ ίϯϑϦΫτղফʹ͕࣌ؒܰݮ͞ΕΔ͜ͱ͕ϝϦοτނʹ 3. τϥϯΫʹϚʔδ͞ΕΔϒϥϯν / τϥϯΫ͔ΒΒΕΔϒϥϯν → 1ͷࢦඪΛΛ͞ΒʹݫີԽ 4. ϨϏϡʔϦΫΤετૹ৴ ~ มߋͷঝೝʹ͔͔Δ࣌ؒͷ͞ → ͜Ε͕Ͱ͖͍ͯͳ͍ͱ։ൃऀ1PRʹؚΉมߋΛେ͖͘͢Δʹ͋Δ
·ͱΊ • Trunk-Based developmentΛߦ͏͜ͱͰɺόάൃੜ֬ & ίϯϑϦΫτղফ ίετ͕ͷͰɺ৺ཧత҆શੑUP ☺ • ϦϦʔε࣌ʹػೳΛӅͨ͢ΊʹɺFeature
f lagͳͲΛ༻͍ͯ͠ͳ͍νʔϜ΄ ͲɺTrunk-Based developmentͷϝϦοτେ͖͍ 💪 • ͍ͣΕʹͯ͠ϝϦοτ͔Γ & ಪ🐯ͳͷͰɺՄೳͳݶΓTrunk-Based developmentΛ͠Α͏🚀
ࢀߟ • https://cloud.google.com/architecture/devops/devops-tech-trunk-based- development • https://cloud.google.com/architecture/devops/devops-process-working- in-small-batches