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
開発生産性実践入門 Pullrequestの粒度編
Search
starfish719
October 05, 2023
0
1.6k
開発生産性実践入門 Pullrequestの粒度編
starfish719
October 05, 2023
Tweet
Share
More Decks by starfish719
See All by starfish719
ファインディの テックブログ爆誕までの軌跡
starfish719
2
1.3k
動作確認やテストで漏れがちな観点3選
starfish719
6
1.4k
GitHub CopilotでTypeScriptの コード生成するワザップ
starfish719
28
6.7k
Findyの爆速開発を支えるPull requestの粒度
starfish719
0
4.7k
フロントエンドの設計刷新〜決断から効果検証まで〜
starfish719
0
53
Gatsby + Netlifyで ポートフォリオサイトを 作った話
starfish719
0
70
vegatech_3.pdf
starfish719
0
410
Nuxt.jsとGraphcoolで ツールを作っている話
starfish719
0
130
CloudFunctionsと CloudVisionで 遊んでみた
starfish719
0
74
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Balancing Empowerment & Direction
lara
1
370
Music & Morning Musume
bryan
46
6.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
490
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
790
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Thoughts on Productivity
jonyablonski
69
4.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Embracing the Ebb and Flow
colly
86
4.7k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
How STYLIGHT went responsive
nonsquared
100
5.6k
Transcript
։ൃੜ࢈ੑ ࣮ફೖ Pullrequestͷཻฤ ։ൃੜ࢈ੑLT Night in Ԭ 2023/10/06(ۚ)
ࠓ͢͜ͱ • ڊେͳPullrequest • αΠζͱཻͷҧ͍ • దͳཻͱ • దͳཻΛҡ࣋͢ΔͨΊʹ •
·ͱΊ 2
ڊେͳPullrequest
4
5
ϨϏϡʔ͔ྃΒϚʔδ·Ͱͷ͕࣌ؒ͘ͳΔ • topic branchͷੜଘظ͕ؒ͘ͳΔ ◦ conflictͷൃੜ͕֬ߴ͘ͳΔ ▪ conflictͷղফʹ͕࣌ؒऔΒΕΔ ▪ conflictͷղফʹࣦഊ͢Δ
• CI͕ίέΔ • मਖ਼ͯ͠ΔؒʹଞͷϓϧϦΫͷमਖ਼͕ೖͬͯ͘Δ ◦ conflictͷൃੜ͕֬ߴ͘ͳΔ ▪ conflictͷղফʹ͕࣌ؒऔΒΕΔ ▪ conflictͷղফʹࣦഊ͢Δ 6
7
ൃੜ࣌ͷӨڹൣғ͕େ͖͘ͳΔ • ൃੜͷݪҼͷಛఆʹֻ͕͔࣌ؒΔ ◦ มߋ༰͕ଟذʹ͍ͬͯΔͷͰɺͲͷमਖ਼͕ݪҼͳͷ͔ௐࠪʹ༨ܭͳֻ͕͔࣌ؒΔ ◦ revert࣌ʹඞཁҎ্ʹrevert͞Εͯ͠·͏ • ϨϏϡʔͷ࣭ͷԼ ◦
ϨϏϡϫʔ͕ݟΔ͖ൣғ͕͘ͳΓɺೝෛՙ্͕͕ͬͯ͠·͏ ◦ ͦͬดͨ͘͡͠ͳΔɺɺɺ ▪ ͋ͱͰ͕࣌ؒ͋Δ࣌ʹݟΑ͏ɻͱͳͬͯ͠·͍ɺ݁ՌతʹϚʔδ·Ͱͷ͕࣌ؒ৳ͼ ͯ͠·͏ • ࢦఠ༰͕૿͑ɺ݁ՌతʹखΓ͕૿͑Δ 8
αΠζͱཻͷҧ͍
ԿΛͬͯʮڊେʯͳPullrequestͱ͢Δ͔ • ॏཁͳͷʮαΠζʯͰͳ͘ʮཻʯ ◦ αΠζ ▪ มߋϑΝΠϧߦ ◦ ཻ ▪
มߋ༰ͷൣғ • มߋߦ͕1ສߦΛ͍͑ͯͨͱͯ͠ɺཻ͕దͰ͋Εͳ͠ 10
దͳཻͱ
ʮҰͭͷ͜ͱʯʹྗ͍ͯ͠Δ͔Ͳ͏͔ • ͦͷPullrequestͷଘࡏҙ͕ٛଟذʹ͍ͬͯͳ͍͔Ͳ͏͔ʁ ◦ ൃੜ࣌ͷrevertͷ୯Ґͱͯ͠ద͔Ͳ͏͔ʁ ◦ ϨϏϡϫʔͷίϯςΩετεΠονଟذʹ͍ͬͯͳ͍͔ʁ ◦ ෳͷରԠΛҰʹೖΕࠐΜͰ͍ͳ͍͔ʁ •
PullrequestෳͷଘࡏҙٛΛ͖࣋ͭͰͳ͍ ◦ ϨϏϡϫʔ͕֬ೝ͢Δ༰ଟذʹͬͯ͠·͏ 12
ྫ̍: ಛఆͷը໘ͷσʔλऔಘͱඳըΛಉ͡PullrequestͰରԠͨ͠ • దͰ͋Γ·ͤΜ ◦ σʔλͷऔಘͱඳըશ͘ҟͳΔॲཧ ▪ গͳ͘ͱೋͭͷPullrequestʹ͚Δ͖ ◦ σʔλऔಘͱඳըΛผͰ࣮Ͱ͖ΔΑ͏ͳઃܭʹͳ͍ͬͯΔඞཁ͕͋Δ
▪ Λ͚ͨςελϒϧͳઃܭ͕ඞཁ 13
ྫ̎: ໊ؔΛมߋͨ͠ͷͰɺར༻ͯ͠ΔՕॴ1ສߦΛҰׅஔͨ͠ • దͰ͢ ◦ มߋߦ1ສߦͰ͕͢ɺ໊ؔΛมߋ͢Δͱ͍͏Ұͭͷ͜ͱ͔͍ͯ͠͠ͳ͍ ◦ Pullrequestͷ֓ཁཝͳͲʹɺ໊ؔΛมߋͯ͠Ұׅஔ͚ͨͩ͠Ͱ͋ΔࢫΛهࡌ͓͚ͯ͠ OK 14
ྫ̏: Ճػೳͷ࣮தʹಉ͡ػೳͷϦϑΝΫλΛೖΕɺมߋߦ20ߦ • దͰ͋Γ·ͤΜ ◦ มߋߦগͳ͍Ͱ͕͢ɺػೳՃͱϦϑΝΫλશ͘ҟͳΔ༰Ͱ͢ ◦ ԾʹػೳՃͷ෦Ͱrevert͕ඞཁʹͳͬͨ߹ɺϦϑΝΫλͷ෦revertରʹͳͬ ͯ͠·͏ ◦
ػೳՃͱϦϑΝΫλɺͨͱ͑ߦ͕গͳͯ͘ผPullrequestͰ࡞͢Δͷ͕ϕετͰ ͢ 15
దͳཻΛҡ࣋͢ΔͨΊʹ
λεΫղ • ίʔυΛॻ͘લʹλεΫղΛ͠·͠ΐ͏ ◦ ৽نAPIΛ࡞Δ߹ ▪ ΤϯυϙΠϯτΛܾΊΔ ▪ responseͷߏΛܾΊɺϞοΫσʔλΛฦ͢ ▪
model͔ΒσʔλΛऔಘͯ͠ɺ࣮ࡍʹσʔλΛฦ͢ ▪ ύϥϝʔλΛड͚औͬͯߜΓࠐΈग़དྷΔΑ͏ʹ͢Δ • ࣮ணखલʹλεΫࣗମΛଞϝϯόʔʹϨϏϡʔͯ͠Β͏ • ࣮͠ͳ͕ΒλεΫΛͲΜͲΜࡉԽ͍ͯ͘͠ • λεΫղͤͣʹ͍͖ͳΓ࣮ʹணखͯ͠͠·͏ͱɺ͋Ε͜Εͱख͕৳ͼͯ ͠·͍ɺ݁ՌతʹڊେͳPullrequest͕രͯ͠͠·͏ 17
Feature Flag • λεΫղͯ͠ͲΜͲΜϚʔδ͍͚ͨ͠Ͳɺຊ൪ڥʹެ։ͨ͘͠ͳ͍ ◦ σϓϩΠ࣌ͷڥมͳͲͰϑϥάΛཧ͠ɺͦͷϑϥάͷذʹΑ࣮ͬͯͨ͠ίʔυ Λ༗ޮԽ͢Δ͔Ͳ͏͔Γସ͑ΔΈ ◦ ػೳϦϦʔεޙʹ͕ى͖ͯɺrevertͤͣʹFeature FlagΛOFFʹ͢Δ͚ͩͰඇެ։
ʹͰ͖Δ ◦ ذͱςετέʔε͕૿͑ΔσϝϦοτ͋Δ͕ɺࡉ͔͘Ϛʔδͯ͠ͲΜͲΜσϓϩΠग़ དྷΔΑ͏ʹͳΔϝϦοτ͋Δ 18
Topic Branch • λεΫղ͚ͨ͠ͲFeature FlagΘͣʹͲΜͲΜϚʔδ͍ͨ͠ 19 • Default Branch ◦
Topic Branch ▪ Work Branch1 ▪ Work Branch2 ▪ Work Branch3 • Topic BranchͱWork BranchؒͷPullrequestΛϨϏϡʔ͢Εྑ͍ • Default BranchͱTopic BranchͷࠩΛఆظతʹϚʔδ͓ͯ͘͠
·ͱΊ
·ͱΊ • ࣮ऀɺϨϏϡϫʔͷ྆ํʹରͯ͠༏͍͠PullrequestΛ࡞͢Δ͜ͱ͕ग़ དྷΔΑ͏ʹͳΔ • ϨϏϡʔͷෛ୲͕Լ͕ΓɺϨϏϡʔͷ্࣭͕͕Γɺ࡞͞ΕͨPullrequest ͕ͲΜͲΜϚʔδ͞ΕΔΑ͏ʹͳΔ ◦ ςετ͕͋Δ͜ͱͰɺແཧͳ͘ܧଓ͢Δ͜ͱ͕ՄೳʹͳΔ •
݁Ռతʹߴ͍։ൃੜ࢈ੑΛҡ࣋͢Δ͜ͱ͕ՄೳʹͳΔ 21
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠