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.8k
開発生産性実践入門 Pullrequestの粒度編
starfish719
October 05, 2023
Tweet
Share
More Decks by starfish719
See All by starfish719
ファインディ株式会社における生成AI活用までの軌跡
starfish719
1
1.1k
ファインディの テックブログ爆誕までの軌跡
starfish719
3
3.1k
動作確認やテストで漏れがちな観点3選
starfish719
6
1.4k
GitHub CopilotでTypeScriptの コード生成するワザップ
starfish719
28
6.8k
Findyの爆速開発を支えるPull requestの粒度
starfish719
0
4.8k
フロントエンドの設計刷新〜決断から効果検証まで〜
starfish719
0
58
Gatsby + Netlifyで ポートフォリオサイトを 作った話
starfish719
0
74
vegatech_3.pdf
starfish719
0
410
Nuxt.jsとGraphcoolで ツールを作っている話
starfish719
0
130
Featured
See All Featured
Become a Pro
speakerdeck
PRO
29
5.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Building Adaptive Systems
keathley
43
2.7k
4 Signs Your Business is Dying
shpigford
184
22k
Code Review Best Practice
trishagee
70
19k
Visualization
eitanlees
147
16k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Into the Great Unknown - MozCon
thekraken
40
2k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Faster Mobile Websites
deanohume
309
31k
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
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠