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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
starfish719
October 05, 2023
0
2.1k
開発生産性実践入門 Pullrequestの粒度編
starfish719
October 05, 2023
Tweet
Share
More Decks by starfish719
See All by starfish719
【Claude Code】Plugins作成から始まったファインディの開発フロー改革
starfish719
0
650
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
2.8k
生成AIが出力するテストコードのリアル よくあるコードと改善のヒント
starfish719
0
730
生成AI時代に若手エンジニアが最初に覚えるべき内容と、その学習法
starfish719
2
820
開発生産性を上げるための生成AI活用術
starfish719
3
3.1k
ファインディ株式会社におけるMCP活用とサービス開発
starfish719
0
4.8k
ファインディ株式会社における生成AI活用までの軌跡
starfish719
1
4.2k
ファインディの テックブログ爆誕までの軌跡
starfish719
3
3.4k
動作確認やテストで漏れがちな観点3選
starfish719
6
1.6k
Featured
See All Featured
WCS-LA-2024
lcolladotor
0
470
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
190
GraphQLの誤解/rethinking-graphql
sonatard
75
11k
How to make the Groovebox
asonas
2
2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Accessibility Awareness
sabderemane
0
71
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
220
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
200
KATA
mclloyd
PRO
35
15k
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
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠