pull request を利用した開発ワークフロー

pull request を利用した開発ワークフロー

pull request を利用した開発ワークフローの話しですが、あんまりプルリの話ししてないし、コードレビュー的なお話しが多いです…。

2997ec7879942bd0415690c85731e328?s=128

Yuichi Tateno

August 28, 2013
Tweet

Transcript

  1. QVMMSFRVFTU Λར༻ͨ͠ ։ൃϫʔΫϑϩʔ JETFDPOEMJGF !IPUDIQPUDI

  2. ࣗݾ঺հ

  3. wJETFDPOEMJGF w!IPUDIQPUDI wؘ໺༞Ұ:VJDIJ5BUFOP w71PG&OHJOOFSJOHBU$PPLQBE w w3VCZ (JU

  4. wJETFDPOEMJGF w!IPUDIQPUDI wؘ໺༞Ұ:VJDIJ5BUFOP w71PG&OHJOOFSJOHBU$PPLQBE w w3VCZ (JU

  5. wJETFDPOEMJGF w!IPUDIQPUDI wؘ໺༞Ұ:VJDIJ5BUFOP w71PG&OHJOOFSJOHBU$PPLQBE w w3VCZ (JU

  6. ޷͖ͳHJUίϚϯυ HJUCMBNF

  7. Α͘࢖ͬͯΔ HJUίϚϯυ IJTUPSZcHSFQHJUcBXL\QSJOU^ cTPSUcVOJRDcTPSUOScIFBE HJUHSFQ HJUDPNNJU HJUQVTI HJUQVMM HJUDP HJUEJGG

    HJUBEE HJUTUBUVT HJUDMPOF HJUSFTFU HJUMPH HJUCS HJUSFCBTF HJUNFSHF
  8. ޷͖ͳHJUπʔϧ UJH

  9. None
  10. HJU ͱͷग़ձ͍

  11. ࣌͸೥݄ɺ౰࣌पΓͷϝΠϯͷόʔδϣϯ؅ཧγεςϜͱݴ͑͹ 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ʹҠߦ͢Δ͜
  12. ࣌͸೥݄ɺ౰࣌पΓͷϝΠϯͷόʔδϣϯ؅ཧγεςϜͱݴ͑͹ 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ʹҠߦ͢Δ͜ ௕͍ͷͰ ׂѪ
  13. ϓϧϦ ͱ͸ʁ

  14. None
  15. None
  16. %&.0

  17. ؆୯ ʘ ?P? ʗ

  18. $00,1"%ͷ HJUIVC ()& ։ൃ

  19. ຖ݄໿ݸͷϓϧϦ HJUMPHTJODFAEBUFWN :NEAcHSFQF?"VUIPSc BXL\QSJOU^cTPSUcVOJRDcTPSUOScXDM  ͻͱ݄Ͱਓ͕ίϛοτ

  20. $00,1"%Ͱͷ ։ൃϫʔΫϑϩʔ ࣗ෼ͷϨϙδτϦͱͯ͠GPSL ϒϥϯνΛ੾ͬͯ։ൃ ϝΠϯϨϙδτϦ΁ϓϧϦ ίʔυϨϏϡʔ ϝΠϯ΁Ϛʔδ

  21. ϓϧϦʹΑΔ ։ൃͷ΍Γ΍͢͞

  22. ίʔυϨϏϡʔ ͷྑ͞

  23. ίʔυϨϏϡʔ ͷྑ͞ ৘ใͷڞ༗   

  24. ίʔυϨϏϡʔ ͷྑ͞ ৘ใͷڞ༗ ʮ៉ྷͳίʔυʯΛҙࣝ  

  25. ίʔυϨϏϡʔ ͷྑ͞ ৘ใͷڞ༗ ʮ៉ྷͳίʔυʯΛҙࣝ ੹೚ͷ෼ࢄ 

  26. ίʔυϨϏϡʔ ͷྑ͞ ৘ใͷڞ༗ ʮ៉ྷͳίʔυʯΛҙࣝ ੹೚ͷ෼ࢄ ֶश

  27. None
  28. ίʔυϨϏϡʔ ͷ ίετΛԼ͛Δ

  29. ίʔυϨϏϡʔ ͷίετΛԼ͛Δ ϏδωεϩδοΫͷࢹ఺ ˠνʔϜͷϝϯόʔ͸͔ͬ͠Γͱɻଞͷ ϝϯόʔ͸ৄࡉ·ͰϨϏϡʔ͠ͳ͍ ίʔυͷ࣭ͷࢹ఺ ˠৄࡉͳ࢓༷Λ஌Βͳͯ͘΋ࢦఠͰ͖Δ ͷͰɺίετ͕͋·Γ͔͔Βͳ͍

  30. ϓϧϦ͸ ҰߦͷมߋͰ΋ૹΔ

  31. େ͖ͳ࣮૷ͷ ϓϧϦ

  32. େ͖ͳ࣮૷ͷ ϓϧϦ ϨϏϡʔ͓ئ͍͠·͢

  33. େ͖ͳ࣮૷ͷ ϓϧϦ ϨϏϡʔ͓ئ͍͠·͢ ˣ ߦͷEJGG

  34. େ͖ͳ࣮૷ͷ ϓϧϦ ϨϏϡʔ͓ئ͍͠·͢ ˣ ߦͷEJGG ˣ ͑ͬʘ ?P? ʗ

  35. େ͖ͳ࣮૷ͷ ϓϧϦ ڊେͳϓϧϦ ϨϏϡʔʹ͕࣌ؒ ͔͔Δ ͦ΋ͦ΋ࠜຊతͳ ઃܭϛε͕͋Δͱʜ

  36. େ͖ͳ࣮૷ͷϓϧϦ <8*1>ͷϓϧϦΛ࡞Δ ˞8*1 8PSL*O1SPHSFTT  ࢓༷ɾઃܭʹ͍ͭͯٞ࿦ ঃʑʹ࣮૷ɺదٓϨϏϡϫʔ ͕֬ೝ <8*1>Λফ͠ɺ࠷ऴϨϏϡʔ

  37. None
  38. ղΓ΍͍͢ ϓϧϦΛૹΔ

  39. ϓϧϦ ύλʔϯू

  40. None
  41. None
  42. None
  43. ޮՌతͳ ϨϏϡʔίϝϯτ <.645>ඞͣ௚͢΂͖ɺྑ͘ͳ͍ίʔυʹ <*.0>๻ͳΒ͜͏ॻ͚͘ͲͲ͏ʁҙݟ΍؇΍ ͔ͳࢦఠ <OJUT> OJUTQJDL ΄Μͷখ͞ͳࢦఠɻΠ ϯσϯτϛεͳͲͷࡉ͔͍ͱ͜Ζʹɻ

  44. ϓϧϦศར5JQT

  45. IUUQTHJUIVCDPNHJUIVCIVC

  46. None
  47. HJUGFUDIQVMMT

  48. HJUGFUDIQVMMT

  49. QVMMSFRVFTU Λར༻ͨ͠ ։ൃϫʔΫϑϩʔ

  50. 8F`SFIJSJOH

  51. 5IBOLZPV