Upgrade to Pro — share decks privately, control downloads, hide ads and more …

よりよいレビュー環境を求めて / A code review odyssey

よりよいレビュー環境を求めて / A code review odyssey

Minami Aoyama Night #6の発表資料です
https://techplay.jp/event/675288

詳細はこちら:
https://masawada.hatenablog.jp/entry/2018/07/02/120000

masawada

July 02, 2018
Tweet

More Decks by masawada

Other Decks in Programming

Transcript

  1. ࿨ాকٛid:masawada
    2018.06.29Minami Aoyama Night #6
    ΑΓΑ͍

    ϨϏϡʔ؀ڥΛٻΊͯ
    !1

    View full-size slide

  2. ձ৔ͷΈͳ͞·ʹ࣭໰

    !2

    View full-size slide

  3. ձ৔ͷΈͳ͞·ʹ࣭໰
    ͝ڠྗ͋Γ͕ͱ͏͍͟͝·͢
    !3

    View full-size slide

  4. ͍·͙͢ొ࿥
    https://blog.hatena.ne.jp/register
    !4

    View full-size slide

  5. ࣗݾ঺հ
    ࿨ాকٛid:masawada
    גࣜձࣾ͸ͯͳWebΞϓϦέʔγϣϯΤϯδχΞ
    ͸ͯͳϒϩάνʔϜ
    !5

    View full-size slide

  6. ࿨ాকٛid:masawada
    2018.06.29Minami Aoyama Night #6
    ΑΓΑ͍

    ϨϏϡʔ؀ڥΛٻΊͯ
    !6

    View full-size slide

  7. ͳͥϨϏϡʔ͢Δͷ͔
    !7
    ͳͥϨϏϡʔ͢Δͷ͔

    View full-size slide

  8. ͳͥϨϏϡʔ͢Δͷ͔
    !8
    ͳͥϨϏϡʔ͢Δͷ͔
    ιϑτ΢ΣΞͷ࣭Λ୲อ͢ΔͨΊ
    ϓϩμΫτʹؔ͢Δ஌ݟΛڞ༗͢ΔͨΊ

    View full-size slide

  9. ͳͥϨϏϡʔ͢Δͷ͔
    !9
    ͳͥϨϏϡʔ͢Δͷ͔
    ιϑτ΢ΣΞͷ࣭Λ୲อ͢ΔͨΊ
    ϓϩμΫτʹؔ͢Δ஌ݟΛڞ༗͢ΔͨΊ

    View full-size slide

  10. ͳͥϨϏϡʔ͢Δͷ͔
    !10
    ͳͥϨϏϡʔ͢Δͷ͔
    ϨϏϡʔͷ࣭˺ιϑτ΢ΣΞͷ࣭

    View full-size slide

  11. ͳͥϨϏϡʔ͢Δͷ͔
    !11
    ͳͥϨϏϡʔ͢Δͷ͔
    ϨϏϡΞʔͷෛ୲Λ࣭ܰͯ͘͠Λอ͍ͪͨ

    View full-size slide

  12. ͸ͯͳϒϩάνʔϜͷ͝঺հ
    !12
    ͸ͯͳϒϩάνʔϜͷ͝঺հ

    View full-size slide

  13. ͸ͯͳϒϩάνʔϜͷ͝঺հ
    !13
    ژ౎
    ౦ژ
    ϓϥϯφʔ
    σΟϨΫλʔ
    ΤϯδχΞ
    σβΠφ
    ϓϩσϡʔαʔ
    ৬छ৬৔

    View full-size slide

  14. ͸ͯͳϒϩάνʔϜͷ͝঺հ
    !14
    ίϛϡχέʔγϣϯπʔϧ
    Google
    Hangouts
    GitHub
    Enterprise
    Slack
    ʜͱɺ͸ͯͳάϧʔϓ

    View full-size slide

  15. ͸ͯͳϒϩάνʔϜͷ͝঺հ
    ͸ͯͳϒϩάνʔϜͷ͝঺հ
    ຖ೔ϦϦʔε
    ຖ೔2ճϨϏϡʔλΠϜ
    σβΠφ΋HTML/CSSΛॻ͘
    !15

    View full-size slide

  16. લఏͷ࿩
    !16
    લఏͷ࿩͓ΘΓ
    ͜͜·Ͱ5෼

    View full-size slide

  17. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    !17
    ආ͚͍ͨPull Requestͷύλʔϯͱ

    ͦΕΛճආ͢ΔͨΊͷઓུ

    View full-size slide

  18. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    ආ͚͍ͨPull Requestͷύλʔϯ
    Ұൃೖࠢύλʔϯ
    େձ৔ύλʔϯ
    ਺चܨ͗ύλʔϯ
    όβʔϧύλʔϯ
    !18

    View full-size slide

  19. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    !19
    Ұൃೖࠢύλʔϯ

    View full-size slide

  20. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    !20

    View full-size slide

  21. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    Ұൃೖࠢύλʔϯͷ໰୊఺
    ϨϏϡʔ͢Δίʔυྔ͕ଟ͍
    ໰୊఺ͷ਺͕ଟ͘ͳΓ͕ͪ
    ίϯϑϦΫτ͠΍͘͢ͳΔ
    !21

    View full-size slide

  22. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    !22
    େձ৔ύλʔϯ

    View full-size slide

  23. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    !23

    View full-size slide

  24. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    େձ৔ύλʔϯͷ໰୊఺
    masterʹϚʔδͨ͠ͱ͖ʹಈ͘อূ͕ബ͍
    ϒϩοΧʔͱͳΔλεΫ͕ൃੜ͢Δ
    !24

    View full-size slide

  25. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    !25
    ਺चܨ͗ύλʔϯ

    View full-size slide

  26. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    !26

    View full-size slide

  27. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    ਺चܨ͗ύλʔϯͷ໰୊఺
    ਌ϒϥϯνͰίϛοτ͕௥Ճ͞ΕΔͱͭΒ͍
    ϚʔδॱংʹؾΛ͚ͭΔඞཁ͕͋Δ
    !27

    View full-size slide

  28. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    !28
    όβʔϧύλʔϯ

    View full-size slide

  29. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    !29

    View full-size slide

  30. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    όβʔϧύλʔϯͷ໰୊఺
    ϨϏϡʔ͢΂͖ൣғ͕ෆ໌ྎ
    Pull Requestͷίϝϯτཝ͕௥͍ͮΒ͘ͳΔ
    !30

    View full-size slide

  31. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    !31
    ϨϏϡʔ͠΍͍͢Pull RequestΛ࡞Δઓུ

    View full-size slide

  32. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    ϨϏϡʔ͠΍͍͢Pull Request
    ϨϏϡʔ͢΂͖ίʔυͷྔ͕গͳ͍
    ϨϏϡΞʔͷෛ͏΂͖੹຿͕͸͖ͬΓ͍ͯ͠Δ
    !32

    View full-size slide

  33. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    ϨϏϡʔ͠΍͍͢Pull Request
    λεΫΛࣄલʹࡉ͔͘෼ׂ͢Δ
    Pull RequestΛࡉ͔͘masterʹϚʔδ͢Δ
    !33

    View full-size slide

  34. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    λεΫΛࣄલʹࡉ͔͘෼ׂ͢Δ
    λεΫؒͷؔ܎Λ೺Ѳ͢Δ͜ͱ͕Ͱ͖Δ
    ࢒λεΫ΍ؔ࿈λεΫ͕໌ࣔతʹͳΔ
    !34

    View full-size slide

  35. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    λεΫΛࣄલʹࡉ͔͘෼ׂ͢Δίπ
    ͙͢͞·Issueʹམͱ͠ࠐ·ͳ͍
    ࡞ۀ͕࣌ؒͳΔ΂͘ҰఆʹͳΔΑ͏ʹ
    1λεΫ1ਓΛ৺͕͚Δ
    !35

    View full-size slide

  36. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    λεΫΛࣄલʹࡉ͔͘෼ׂ͢Δίπ
    !36

    View full-size slide

  37. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    λεΫΛࣄલʹࡉ͔͘෼ׂ͢Δίπ
    ͙͢͞·Issueʹམͱ͠ࠐ·ͳ͍
    ࡞ۀ͕࣌ؒͳΔ΂͘ҰఆʹͳΔΑ͏ʹ
    1λεΫ1ਓΛ৺͕͚Δ
    !37

    View full-size slide

  38. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    Pull RequestΛࡉ͔͘masterʹϚʔδ͢Δ
    ςʔϒϧΛ࡞੒͢Δ
    ϞσϧΫϥεΛ࡞Δ
    पลͷखଓ͖Λந৅Խͨ͠ϝιουΛ࡞੒͢Δ
    6*ϞοΫΛ࡞Δ
    6*ͱϩδοΫΛ݁߹͢Δ
    !38

    View full-size slide

  39. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    !39
    <ࡉ͔͘merge͍ͯ͘͠ઓུ><ݕࡧ>

    View full-size slide

  40. ආ͚͍ͨPull RequestͷύλʔϯͱͦΕΛճආ͢ΔͨΊͷઓུ
    !40
    ආ͚͍ͨPull Requestͷύλʔϯͱ

    ͦΕΛճආ͢ΔͨΊͷઓུ͓ΘΓ
    ͜͜·Ͱ17෼

    View full-size slide

  41. ϨϏϡʔΛऔΓר͘؀ڥΛ޻෉͢Δ
    !41
    ϨϏϡʔΛऔΓר͘؀ڥΛ޻෉͢Δ

    View full-size slide

  42. ϨϏϡʔΛऔΓר͘؀ڥΛ޻෉͢Δ
    ϨϏϡʔΛऔΓר͘؀ڥΛ޻෉͢Δ
    ϨϏϡΞʔͷภΓΛՄࢹԽ͢Δ
    ΞϧόΠτʹ΋ϨϏϡʔΛͯ͠΋Β͏
    !42

    View full-size slide

  43. ϨϏϡʔΛऔΓר͘؀ڥΛ޻෉͢Δ
    ϨϏϡΞʔͷภΓΛՄࢹԽ͢Δ
    !43

    View full-size slide

  44. ϨϏϡʔΛऔΓר͘؀ڥΛ޻෉͢Δ
    github.com/aereal/go-github-reviewer-stats
    !44

    View full-size slide

  45. ϨϏϡʔΛऔΓר͘؀ڥΛ޻෉͢Δ
    !45

    View full-size slide

  46. ϨϏϡʔΛऔΓר͘؀ڥΛ޻෉͢Δ
    !46

    View full-size slide

  47. ϨϏϡʔΛऔΓר͘؀ڥΛ޻෉͢Δ
    ΞϧόΠτελοϑʹ΋ϨϏϡʔΛͯ͠΋Β͏
    !47

    View full-size slide

  48. ϨϏϡʔΛऔΓר͘؀ڥΛ޻෉͢Δ
    ΞϧόΠτελοϑʹ΋ϨϏϡʔΛͯ͠΋Β͏
    ϓϩμΫτʹؔ͢Δ஌ݟΛਂΊΔ͜ͱ͕Ͱ͖Δ
    ద౓ͳ1VMM3FRVFTUͷཻ౓ΛֶͿ͜ͱ͕Ͱ͖Δ
    !48

    View full-size slide

  49. ϨϏϡʔΛऔΓר͘؀ڥΛ޻෉͢Δ
    ΞϧόΠτελοϑʹ΋ϨϏϡʔΛͯ͠΋Β͏
    ϨϏϡʔλΠϜ͸1࣌ؒ
    approveͯ͠΋masterʹϚʔδ͸Ͱ͖ͳ͍
    !49

    View full-size slide

  50. ϨϏϡʔΛऔΓר͘؀ڥΛ޻෉͢Δ
    ΞϧόΠτελοϑʹ΋ϨϏϡʔΛͯ͠΋Β͏
    !50

    View full-size slide

  51. ϨϏϡʔΛऔΓר͘؀ڥΛ޻෉͢Δ
    !51
    ϨϏϡʔΛऔΓר͘؀ڥΛ޻෉͢Δ࿩͓ΘΓ
    ͜͜·Ͱ22෼

    View full-size slide

  52. ·ͱΊ
    !52
    ·ͱΊ

    View full-size slide

  53. ·ͱΊ
    !53
    ࿩ͨ͜͠ͱ
    ϨϏϡʔ͸ιϑτ΢ΣΞͷ࣭Λ୲อ͢ΔॏཁͳϑΝΫλʔ
    Pull Requestͷ࡞ΓํΛ޻෉ͯ͠

    ϨϏϡΞʔͷෛ୲ΛݮΒͦ͏
    ࡉ͔͘վળΛॏͶͯΑΓΑ͍ϨϏϡʔͷ؀ڥ࡞ΓΛ͠Α͏

    View full-size slide

  54. ͋Γ͕ͱ͏͍͟͝·ͨ͠
    ࣭ٙԠ౴
    !54

    View full-size slide