pull request を利用した開発ワークフローの話しですが、あんまりプルリの話ししてないし、コードレビュー的なお話しが多いです…。
QVMMSFRVFTUΛར༻ͨ͠։ൃϫʔΫϑϩʔJETFDPOEMJGF!IPUDIQPUDI
View Slide
ࣗݾհ
wJETFDPOEMJGFw!IPUDIQPUDIwؘ༞Ұ:VJDIJ5BUFOPw71PG&OHJOOFSJOHBU$PPLQBEww3VCZ (JU
͖ͳHJUίϚϯυHJUCMBNF
Αͬͯ͘ΔHJUίϚϯυIJTUPSZcHSFQHJUcBXL\QSJOU^cTPSUcVOJRDcTPSUOScIFBEHJUHSFQHJUDPNNJUHJUQVTIHJUQVMMHJUDPHJUEJGGHJUBEEHJUTUBUVTHJUDMPOFHJUSFTFUHJUMPHHJUCSHJUSFCBTFHJUNFSHF
͖ͳHJUπʔϧUJH
HJUͱͷग़ձ͍
݄࣌ɺ࣌पΓͷϝΠϯͷόʔδϣϯཧγεςϜͱݴ͑TVCWFSTJPOͰ͋ͬͨɻίϛοτͨ͠ΒϩʔΧϧͰͳ͘ɺதԝϨϙδτϦʹө͞ΕͯγεςϜɺٱ͠ͿΓʹࠓͬͯΈΔͱϏοΫϦ͢ΔɻͦΜͳ࣌ࢄWDTΛ͍͍ͨҰ෦ͷਓ͕͍ͬͯͨͷ͕TWLͱ͍͏TWOΛར༻ͨ͠γεςϜͩͬͨɻ͔࣌͠͠ͷࢲࢄWDTͷϝϦοτΛ΄ͱΜͲཧղͯ͠ͳ͔ͬͨͨΊͬͯډͳ͔ͬͨɻ·ͨTWOTWLϒϥϯνΛੜͤ͞ΔίετɺϒϥϯνͷεΠονίετ͕ߴ͔ͬͨͨΊɺ͍উख͕ΠϚΠνͩͬͨɻͦΜͳதɺΓ߹͍ͷΪʔΫͰ͋ΔUZQFTUFS͕HJU͕͍͍ͩͱΦεεϝ͍ͯͨ͠ͷͰɺͬͯΈͨͷ͕࢝·ΓͰ͋Δɻ࠷ॳϒϥϯνͷεΠονϯάίετ͕͍͜ͱʹڻ͖ɺঃʑʹࢄWDTͰ͋Δ͜ͱͷྑ͞ཧղ͢Δ͜ͱ͕Ͱ͖ͨɻ·ͨHJUYYYͷ$6*πʔϧ܈ͷVOJYతͳɺίϚϯυΛΈ߹Θ༷ͤͯʑͳ͜ͱ͕ग़དྷΔࢥɺHJUͷઃܭΛݟΔͱɺ੍࡞ऀͷMJOVTͷײੑͱ͍͏͔ηϯεͷྑ͞ʹڻ͔͞ΕͨͩɻࣄͰHJUTWOΛ͍࢝Ίͨͷ͕ͩɺ͔͠͠ϝΠϯͷϨϙδτϦTWOͰ͋ͬͨͨΊɺHJUͱTWOͷΠϯςάϨʔτ͕Θ͘͠ײ͍ͯͨ͡ͷͰ͋ͬͨɻͦΜͳதɺ͔ෆ͔ɺձࣾͷTWOͷϨϙδτϦ͕յΕΔࣄ͕݅ൃੜ͢ΔɻॏཁͳதԝόʔδϣϯཧγεςϜͳͷͰϛϥʔϦϯάͳ3"*%Ͱߏங͞Ε͍ͯΔͷͰͬ͘͞ͱ෮چɺͱࢥ͍͖೦ɺ3"*%ͪΌΜͰͨ͠ʘ ?P?ʗͱ͍͏ϏοΫϦࣄ͕݅ൃੜɻ͏͓ʔେมٽ͚Δʙɺ͔ͨͩ͠͠Ͱస͵ɺͱ͍͏Θ͚ͰͲ͏TWO͔ΒHJUʹࣾͷ༷ʑͳγεςϜɺσϓϩΠʑΛҠͤΔ͔ߟɺHJUʹҠͤͦ͏ͩΑͶɺͱ͍͏͜ͱͰࣾͷTWOΛHJUʹҠߦ͢Δ͜
݄࣌ɺ࣌पΓͷϝΠϯͷόʔδϣϯཧγεςϜͱݴ͑TVCWFSTJPOͰ͋ͬͨɻίϛοτͨ͠ΒϩʔΧϧͰͳ͘ɺதԝϨϙδτϦʹө͞ΕͯγεςϜɺٱ͠ͿΓʹࠓͬͯΈΔͱϏοΫϦ͢ΔɻͦΜͳ࣌ࢄWDTΛ͍͍ͨҰ෦ͷਓ͕͍ͬͯͨͷ͕TWLͱ͍͏TWOΛར༻ͨ͠γεςϜͩͬͨɻ͔࣌͠͠ͷࢲࢄWDTͷϝϦοτΛ΄ͱΜͲཧղͯ͠ͳ͔ͬͨͨΊͬͯډͳ͔ͬͨɻ·ͨTWOTWLϒϥϯνΛੜͤ͞ΔίετɺϒϥϯνͷεΠονίετ͕ߴ͔ͬͨͨΊɺ͍উख͕ΠϚΠνͩͬͨɻͦΜͳதɺΓ߹͍ͷΪʔΫͰ͋ΔUZQFTUFS͕HJU͕͍͍ͩͱΦεεϝ͍ͯͨ͠ͷͰɺͬͯΈͨͷ͕࢝·ΓͰ͋Δɻ࠷ॳϒϥϯνͷεΠονϯάίετ͕͍͜ͱʹڻ͖ɺঃʑʹࢄWDTͰ͋Δ͜ͱͷྑ͞ཧղ͢Δ͜ͱ͕Ͱ͖ͨɻ·ͨHJUYYYͷ$6*πʔϧ܈ͷVOJYతͳɺίϚϯυΛΈ߹Θ༷ͤͯʑͳ͜ͱ͕ग़དྷΔࢥɺHJUͷઃܭΛݟΔͱɺ੍࡞ऀͷMJOVTͷײੑͱ͍͏͔ηϯεͷྑ͞ʹڻ͔͞ΕͨͩɻࣄͰHJUTWOΛ͍࢝Ίͨͷ͕ͩɺ͔͠͠ϝΠϯͷϨϙδτϦTWOͰ͋ͬͨͨΊɺHJUͱTWOͷΠϯςάϨʔτ͕Θ͘͠ײ͍ͯͨ͡ͷͰ͋ͬͨɻͦΜͳதɺ͔ෆ͔ɺձࣾͷTWOͷϨϙδτϦ͕յΕΔࣄ͕݅ൃੜ͢ΔɻॏཁͳதԝόʔδϣϯཧγεςϜͳͷͰϛϥʔϦϯάͳ3"*%Ͱߏங͞Ε͍ͯΔͷͰͬ͘͞ͱ෮چɺͱࢥ͍͖೦ɺ3"*%ͪΌΜͰͨ͠ʘ ?P?ʗͱ͍͏ϏοΫϦࣄ͕݅ൃੜɻ͏͓ʔେมٽ͚Δʙɺ͔ͨͩ͠͠Ͱస͵ɺͱ͍͏Θ͚ͰͲ͏TWO͔ΒHJUʹࣾͷ༷ʑͳγεςϜɺσϓϩΠʑΛҠͤΔ͔ߟɺHJUʹҠͤͦ͏ͩΑͶɺͱ͍͏͜ͱͰࣾͷTWOΛHJUʹҠߦ͢Δ͍͜ͷͰׂѪ
ϓϧϦͱʁ
%&.0
؆୯ʘ ?P?ʗ
$00,1"%ͷHJUIVC ()&։ൃ
ຖ݄ݸͷϓϧϦHJUMPHTJODFAEBUFWN:NEAcHSFQF?"VUIPScBXL\QSJOU^cTPSUcVOJRDcTPSUOScXDMͻͱ݄Ͱਓ͕ίϛοτ
$00,1"%Ͱͷ։ൃϫʔΫϑϩʔࣗͷϨϙδτϦͱͯ͠GPSLϒϥϯνΛͬͯ։ൃϝΠϯϨϙδτϦϓϧϦίʔυϨϏϡʔϝΠϯϚʔδ
ϓϧϦʹΑΔ։ൃͷΓ͢͞
ίʔυϨϏϡʔͷྑ͞
ίʔυϨϏϡʔͷྑ͞ใͷڞ༗
ίʔυϨϏϡʔͷྑ͞ใͷڞ༗ʮ៉ྷͳίʔυʯΛҙࣝ
ίʔυϨϏϡʔͷྑ͞ใͷڞ༗ʮ៉ྷͳίʔυʯΛҙࣝͷࢄ
ίʔυϨϏϡʔͷྑ͞ใͷڞ༗ʮ៉ྷͳίʔυʯΛҙࣝͷࢄֶश
ίʔυϨϏϡʔͷίετΛԼ͛Δ
ίʔυϨϏϡʔͷίετΛԼ͛ΔϏδωεϩδοΫͷࢹˠνʔϜͷϝϯόʔ͔ͬ͠Γͱɻଞͷϝϯόʔৄࡉ·ͰϨϏϡʔ͠ͳ͍ίʔυͷ࣭ͷࢹˠৄࡉͳ༷ΛΒͳͯ͘ࢦఠͰ͖ΔͷͰɺίετ͕͋·Γ͔͔Βͳ͍
ϓϧϦҰߦͷมߋͰૹΔ
େ͖ͳ࣮ͷϓϧϦ
େ͖ͳ࣮ͷϓϧϦϨϏϡʔ͓ئ͍͠·͢
େ͖ͳ࣮ͷϓϧϦϨϏϡʔ͓ئ͍͠·͢ˣߦͷEJGG
େ͖ͳ࣮ͷϓϧϦϨϏϡʔ͓ئ͍͠·͢ˣߦͷEJGGˣ͑ͬʘ ?P?ʗ
େ͖ͳ࣮ͷϓϧϦڊେͳϓϧϦϨϏϡʔʹ͕͔͔࣌ؒΔͦͦࠜຊతͳઃܭϛε͕͋Δͱʜ
େ͖ͳ࣮ͷϓϧϦ<8*1>ͷϓϧϦΛ࡞Δ˞8*1 8PSL*O1SPHSFTT༷ɾઃܭʹ͍ͭͯٞঃʑʹ࣮ɺదٓϨϏϡϫʔ͕֬ೝ<8*1>Λফ͠ɺ࠷ऴϨϏϡʔ
ղΓ͍͢ϓϧϦΛૹΔ
ϓϧϦύλʔϯू
ޮՌతͳϨϏϡʔίϝϯτ<.645>ඞ͖ͣ͢ɺྑ͘ͳ͍ίʔυʹ<*.0>ͳΒ͜͏ॻ͚͘ͲͲ͏ʁҙݟ؇͔ͳࢦఠ OJUTQJDL΄Μͷখ͞ͳࢦఠɻΠϯσϯτϛεͳͲͷࡉ͔͍ͱ͜Ζʹɻ
ϓϧϦศར5JQT
IUUQTHJUIVCDPNHJUIVCIVC
HJUGFUDIQVMMT
QVMMSFRVFTUΛར༻ͨ͠։ൃϫʔΫϑϩʔ
8F`SFIJSJOH
5IBOLZPV