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

先輩から教えてもらったコードレビュー

 先輩から教えてもらったコードレビュー

LT大会にお呼ばれしました。
内容は以前ブログにしたためた「コードレビューするのが怖いと思っていたエンジニアが半年間コードレビューを経験して思った 10 のこと」についてです☺
http://b.hatena.ne.jp/entry/yutokyokutyo.hatenablog.com/entry/20161213/1481590322

Yuto Kondo

March 07, 2017
Tweet

More Decks by Yuto Kondo

Other Decks in Education

Transcript

  1. ۙ౻༟ే(.01FQBCP *OD
    ʲࣾ߹ಉ-5େձʳ(.0ϖύϘɾ+BQBO5BYJɾΦΠγοΫε
    ઌഐ͔Βڭ͑ͯ΋Βͬͨ
    ίʔυϨϏϡʔ
    ۙ౻༟ే(.01FQBCP *OD
    ʲࣾ߹ಉ-5େձʳ(.0ϖύϘɾ+BQBO5BYJɾΦΠγοΫε

    View Slide

  2. 磦堄嫵㞷

    View Slide

  3. View Slide

  4. υϯͱݟ͍ͤͨςΩετΛೖΕΔ

    View Slide

  5. ܦҢ

    View Slide

  6. ZVUPLZPLVUZPIBUFOBCMPHDPNFOUSZ

    View Slide

  7. IUUQTXXXTMJEFTIBSFOFUUBLBGVNJPOBLBTT

    View Slide

  8. ͸͡·Γ

    View Slide

  9. ొ৔ਓ෺঺հ
    ⃂ ߶ഠƑ༵Ḻ

    View Slide

  10. View Slide

  11. ίʔυϨϏϡʔ΍ͬͯΈͳ͍ʁ
    ˞։ൃνʔϜϝϯόʔ

    View Slide

  12. ίʔυϨϏϡʔ
    ͳΜͯͰ͖Δ͸ͣͳ͍Α

    View Slide

  13. ͩͬͯ
    ίʔυϦʔσΟϯά
    ͢ΒͰ͖ͳ͍ΜͩΑʁ

    View Slide

  14. ίʔυϨϏϡʔ͸
    αʔϏεͷίʔυΛख़஌
    ͍ͯ͠Δਓ͡Όͳ͍ͱ
    Ͱ͖ͳ͍Μ͡Όͳ͍͔ͳʁ

    View Slide

  15. ࢲୡ͕αϙʔτ͠·͢ʂ
    ˞։ൃνʔϜϝϯόʔ

    View Slide

  16. ΍ͬͯΈΔ͔ɻ

    View Slide

  17. ͜ͷΑ͏ʹͯ͠
    ๻ͷίʔυϨϏϡʔਓੜ͕
    ελʔτ͠·ͨ͠ɻ

    View Slide

  18. ͱ͸͍͑ϨϏϡʔॳ৺ऀΛ
    ์ஔ͓ͯ͘͠Θ͚ʹ͸͍͖·ͤΜɻ

    View Slide

  19. ์͓ͬͯ͘ͱ

    View Slide

  20. େৎ෉͡Όͳ͍͔ͳɻ
    ଟ෼େৎ෉ͩΖ͏ʂ
    ϙνοͱͳ

    View Slide

  21. େৎ෉͡Όͳ͍͔ͳɻ
    ଟ෼େৎ෉ͩΖ͏ʂ
    ා͗͢Δ

    View Slide

  22. Ͳ͏΍͔ͬͨʁ

    View Slide

  23. Ȃǩǻƺ✣ Ȃǩǻȅ✣

    View Slide

  24. Ȃǩǻƺ✣ Ȃǩǻȅ✣
    ϨϏϡʔ
    ͓Ͷ͠Ό͢

    View Slide

  25. Ȃǩǻƺ✣ Ȃǩǻȅ✣
    ϨϏϡʔ
    ͓Ͷ͠Ό͢
    -(5.

    View Slide

  26. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ

    View Slide

  27. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    ઌഐ͕
    ࣍ड͚

    View Slide

  28. ύλʔϯ̍

    View Slide

  29. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    ϨϏϡʔ
    ͓Ͷ͠Ό͢

    View Slide

  30. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    -(5.
    ϨϏϡʔ
    ͓Ͷ͠Ό͢

    View Slide

  31. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    -(5. -(5.
    ϨϏϡʔ
    ͓Ͷ͠Ό͢

    View Slide

  32. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    NBTUFSʹ
    Ϛʔδ͠·͢
    -(5. -(5.

    View Slide

  33. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    NBTUFSʹ
    Ϛʔδ͠·͢
    -(5. -(5.
    ϨϏϡΠʔ͕҆৺
    ๻΋҆৺
    αʔϏε΋҆શ

    View Slide

  34. ύλʔϯ̎

    View Slide

  35. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ

    View Slide

  36. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    ϨϏϡʔ
    ͓Ͷ͠Ό͢

    View Slide

  37. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    Μʁͪ͜͜ΐͬͱ
    ͓͔͍͔͠΋
    ϨϏϡʔ
    ͓Ͷ͠Ό͢

    View Slide

  38. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    ϨϏϡʔ
    ͓Ͷ͠Ό͢
    Μʁͪ͜͜ΐͬͱ
    ͓͔͍͔͠΋
    ͔֬ʹͶʂ
    ΋ͬͱ͍͍ॻ͖ํ
    Ͱ͖ͦ͏ʂ

    View Slide

  39. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    ϨϏϡʔ
    ͓Ͷ͠Ό͢
    ๻ͷߟ͑͸
    ਖ਼͔ͬͨ͠Μͩʂ
    ͔֬ʹͶʂ
    ΋ͬͱ͍͍ॻ͖ํ
    Ͱ͖ͦ͏ʂ

    View Slide

  40. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    ϨϏϡʔ
    ͓Ͷ͠Ό͢
    Μʁͪ͜͜ΐͬͱ
    ͓͔͍͔͠΋
    ͔֬ʹͶʂ
    ΋ͬͱ͍͍ॻ͖ํ
    Ͱ͖ͦ͏ʂ
    ࣗ෼͕ҧ࿨ײΛ࣋ͬͨ
    Օॴ͕ਖ਼͍͠ͱ
    ೝࣝͰ͖Δ

    View Slide

  41. ύλʔϯ̏

    View Slide

  42. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ

    View Slide

  43. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    ϨϏϡʔ
    ͓Ͷ͠Ό͢

    View Slide

  44. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    -(5.
    ϨϏϡʔ
    ͓Ͷ͠Ό͢

    View Slide

  45. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    -(5.
    ϨϏϡʔ
    ͓Ͷ͠Ό͢
    ͍΍͍΍ʂ
    ͕͓͔͍͜͜͠ͱ
    ࢥ͏ͧ͒ʂ

    View Slide

  46. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    ϨϏϡʔ
    ͓Ͷ͠Ό͢
    ͳΔ΄Ͳɻ
    ͦ͏͍͏ߟ͑ํ͕
    ͋ͬͨͷ͔
    ͍΍͍΍ʂ
    ͕͓͔͍͜͜͠ͱ
    ࢥ͏ͧ͒ʂ

    View Slide

  47. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    ϨϏϡʔ
    ͓Ͷ͠Ό͢
    ͍΍͍΍ʂ
    ͕͓͔͍͜͜͠ͱ
    ࢥ͏ͧ͒ʂ
    ͳΔ΄Ͳɻ
    ͦ͏͍ͬͨߟ͑ํ͕
    ͋ͬͨͷ͔
    ࣗ෼ͷதʹଘࡏ͢Δ
    όουύλʔϯʹؾ෇͘
    ͜ͱ͕Ͱ͖Δ

    View Slide

  48. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    ϨϏϡʔ
    ͓Ͷ͠Ό͢
    ͳΔ΄Ͳɻ
    ͦ͏͍͏ߟ͑ํ͕
    ͋ͬͨͷ͔
    ͍΍͍΍ʂ
    ͕͓͔͍͜͜͠ͱ
    ࢥ͏ͧ͒ʂ
    ࣗ෼ʹ͸ͳ͍ࢹ఺΍ߟ͑
    ํΛֶͿ͜ͱ͕Ͱ͖Δ

    View Slide

  49. ύλʔϯ̐

    View Slide

  50. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ

    View Slide

  51. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    ϨϏϡʔ
    ͓Ͷ͠Ό͢

    View Slide

  52. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    -(5.
    ϨϏϡʔ
    ͓Ͷ͠Ό͢

    View Slide

  53. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    -(5.
    ϨϏϡʔ
    ͓Ͷ͠Ό͢
    ཱ೿ʹ
    ͳͬͨͳ͊☺

    View Slide

  54. Ȃǩǻ✣၇内 Ց൳Ŵ Ց൳Ŵ
    ϨϏϡʔ
    ͓Ͷ͠Ό͢
    ͍΍͍΍ʂ
    ͕͓͔͍͜͜͠ͱ
    ࢥ͏ͧ͒ʂ
    ͳΔ΄Ͳɻ
    ͦ͏͍ͬͨߟ͑ํ͕
    ͋ͬͨͷ͔
    ׳Ε͍ͯ͘ʹͭΕͯ
    ҰਓͰϨϏϡʔͰ͖Δ
    ྔ͕૿͍͑ͯ͘

    View Slide

  55. ϲ݄ޙ

    View Slide

  56. ໰୊ʹͿͪ౰ͨΓ·ͨ͠ɻ

    View Slide

  57. ҰਓͰίʔυϨϏϡʔΛ
    ͢Δͱ͖ʹࣗ৴͕࣋ͯͳ͍

    View Slide

  58. ઌഐୡͷΑ͏ʹత֬ͳ
    ίʔυϨϏϡʔ͕Ͱ͖ͳ͍

    View Slide

  59. ͳ͔ͳ͔ಠΓཱͪͰ͖ͳ͍যΓ

    View Slide

  60. νʔϜϝϯόʔͱ;Γ͔͑Γ
    ˞։ൃνʔϜϝϯόʔ

    View Slide

  61. ˞։ൃνʔϜϝϯόʔ
    ·ͣୈҰʹযΒͳͯ͘େৎ෉ɻ
    Ͱ͖Δ͜ͱ͔Β΍͍ͬͯ͜͏ɻ

    View Slide

  62. ˞։ൃνʔϜϝϯόʔ
    ҧ࿨ײΛ࣋ͭ΂͖Օॴ͸ඞͣͰͯ͘Δɻ
    ͦͷՕॴʹ͍ͭͯʮͳͥ͜ͷΑ͏ʹॻ͍ͨͷ
    Ͱ͔͢ʁʯͱ࣭໰͢Δ͚ͩͰ΋ྑ͍ΜͩΑɻ

    View Slide

  63. ˞։ൃνʔϜϝϯόʔ
    Կ͔ٙ໰Λ࣋ͬͨͱ͍͏͜ͱ͸΍Γ͍ͨ͜ͱ
    ͕ͦͷίʔυ͔ΒಡΈऔΕͳ͔͔ͬͨΒʂ
    ͦΕ͸͖ͬͱͲ͔͜ʹٞ࿦΍վળͷ༨஍͕͋
    Δͬͯ͜ͱͳΜ͡Όͳ͍͔ͳʁ

    View Slide

  64. ˞։ൃνʔϜϝϯόʔ
    ҧ࿨ײΛ࣋ͬͯఏى͚ͨͩ͠ͷίϝϯτ͚ͩ
    Ͱ΋ɺϨϏϡΠʔʹ࠶ߟͤ͞Δ͜ͱͰ৽ͨͳ
    ൃݟ͕ੜ·ΕͨΓ͢Δ͜ͱ΋͋ΔΜͩɻ

    View Slide

  65. ˞։ൃνʔϜϝϯόʔ
    (JU)VC্Ͱͷ΍ΓͱΓ͸4MBDLʹ௨஌͞Ε
    ΔΑͶʁͦΕΛݟͨνʔϜϝϯόʔ͔Β·ͨ
    ৽ͨͳίϝϯτΛ໯͑Δ͜ͱͩͬͯ͋Δɻ

    View Slide

  66. ˞։ൃνʔϜϝϯόʔ
    ͔ͩΒͦͷҰา͸ઈରʹແବʹͳΒͳ͍ɻ
    ༐ؾΛ࣋ͬͯൃݴ͍ͯ͜͠͏ʂ

    View Slide

  67. ͜Μͳࣗ෼Ͱ΋Ͱ͖Δ
    ͔΋͠Εͳ͍ɻ

    View Slide

  68. ൒೥ޙ

    View Slide

  69. ؾ͕͍ͭͨΒ਺ඦ݅ʹٴͿ
    ίʔυϨϏϡʔΛ͜ͳ͍ͯ͠·ͨ͠ɻ

    View Slide

  70. ൒೥ؒΛ;Γ͔͑ͬͯΈͨ

    View Slide

  71. ϨϏϡΞʔͷࢹ఺Λ
    ࣋ͭΑ͏ʹͳͬͨ

    View Slide

  72. ϨϏϡΞʔͷࢹ఺Λ࣋ͭΑ͏ʹͳͬͨ
    wҙਤ͕͸͖ͬΓ໌ࣔ͞Ε͍ͯΔ΂͖
    wίϛοτͷཻ౓͕ద੾ͰྲྀΕͷ͋Δ΋ͷͱͳ͍ͬͯΔ΂͖
    wಈ࡞ݕূ݁Ռ΍ςετ݁Ռ͕໌ࣔ͞Ε͍ͯΔ΂͖
    wؔ࿈͢ΔJTTVF΍13ͷϦϯΫ͕షΒΕ͍ͯΔ΂͖

    View Slide

  73. Πϯσϯτमਖ਼͸
    ਓ͕ؒ΍Δ΂͖Ͱ͸ͳ͍

    View Slide

  74. Πϯσϯτमਖ਼͸ਓ͕ؒ΍Δ΂͖Ͱ͸ͳ͍
    wਓ͕ؒ΍Δ΂͖͜ͱͱػց͕΍Δ΂͖͜ͱ͸۠ผ͢Δ΂͖
    wػց͕Ͱ͖Δ͜ͱʹ͍ͭͯ͸ਓ͕ؒ΍ΔΑΓ΋ػցʹ೚ͤͨํ͕਺ඦ
    ഒޮ཰͕ྑ͘ਖ਼֬ͳͷͰੵۃతʹ΍ΒͤΔ΂͖
    wςετͷ࣮ߦ͸$*ʹɺΠϯσϯτͷमਖ਼΍ࢦఠʹ͍ͭͯ͸ݴޠຖʹ
    ͋ΔϦϯτπʔϧΛ࢖͏͜ͱ
    wਓؒ͸ػցʹ͸Ͱ͖ͳ͍ൃ૝΍ߟ͑Δ͜ͱʹ࣌ؒΛඅ΍͢Α͏ʹ͢Δ
    ΂͖

    View Slide

  75. ϨϏϡʔ͸औΓࠐΉ΋ͷ

    View Slide

  76. ϨϏϡʔ͸औΓࠐΉ΋ͷ
    wຊདྷίʔυϨϏϡʔจԽͷ͋Δ΂͖ਖ਼͖࢟͠͸νʔϜؒͰٞ࿦Λͯ͠
    αʔϏεʹͱͬͯ࠷ऴతʹྑ͍ͱ൑அͨ͜͠ͱΛऔΓࠐΉ͜ͱͰ͋Γɺ
    ΋͠΋मਖ਼͢Δͱ͍͏಺༰ͳͷͰ͋Ε͹ͦΕ͸ϨϏϡΞʔͷҙݟΛऔ
    ΓࠐΉ͜ͱɻ
    wमਖ਼ͱ͍͏ݴ༿͸࢖ΘͣʹϨϏϡʔΛऔΓࠐΉͱ͍͏දݱΛ࢖͏
    Α͏ʹ͍ͯ͠·͢ɻ

    View Slide

  77. ϨϏϡʔ͸औΓࠐΉ΋ͷ
    wຊདྷίʔυϨϏϡʔจԽͷ͋Δ΂͖ਖ਼͖࢟͠͸νʔϜؒͰٞ࿦Λͯ͠
    αʔϏεʹͱͬͯ࠷ऴతʹྑ͍ͱ൑அͨ͜͠ͱΛऔΓࠐΉ͜ͱͰ͋Γɺ
    ΋͠΋मਖ਼͢Δͱ͍͏಺༰ͳͷͰ͋Ε͹ͦΕ͸ϨϏϡΞʔͷҙݟΛऔ
    ΓࠐΉ͜ͱɻ
    wमਖ਼ͱ͍͏ݴ༿͸࢖ΘͣʹϨϏϡʔΛऔΓࠐΉͱ͍͏දݱΛ࢖͏
    Α͏ʹ͍ͯ͠·͢ɻ

    View Slide

  78. ίʔυϨϏϡʔͱ͸ʁ
    ໰୊WTࢲୡ

    View Slide

  79. ίʔυϨϏϡʔͱ͸ʁ
    wʮ໰୊WTࢲୡʯͱ͍͏ߏਤΛৗʹ๨Εͣɺ࠷ྑͷίʔυΛνʔϜͰߟ
    ͑ಋ͖ग़͠࢒͢͜ͱɻ
    wνʔϜͰ࠷ྑͷίʔυΛ࢒͢ͱ͍͏໨తΛ๨Εͳ͚Ε͹ɺͲΜͳϨ
    Ϗϡʔίϝϯτ΋ʮ࠷ྑͷίʔυΛ࢒ͨ͢ΊʹԕྀͤͣʹҙݟΛड़΂
    ͯ͘Ε͍ͯΔʯͱߟ͑Δ͜ͱͰ͖Δɻ
    wϨϏϡΠʔͱϨϏϡΞʔͷ૒ํ͕ޓ͍ʹ໨తΛҰகͤ͞ԕྀͤͣʹา
    ΈدΔ͜ͱͰ࠷ߴͷίʔυϨϏϡʔ͕Ͱ͖Δɻ

    View Slide

  80. ֆจࣈɾإจࣈɾײ୰ූ
    ΛదࡐదॴͰ࢖͏

    View Slide

  81. ྑͦ͞͏ͳྫ
    w߹ཧతނʹগ͠ݫ͠Ίͳίϝϯτͱͳͬͯ͠·͍ͬͯͯ΋ɺ຤ඌʹস
    إͷإจࣈ΍ײ୰ූ͕͋Δ͚ͩͰ҆৺ΛಘΔ͜ͱ͕Ͱ͖Δͱ৴ͯ͡·
    ͢ɻ

    View Slide

  82. ѱ͍ྫ
    wจ຺ͱશؔ͘܎ͷͳ͍ֆจࣈͷ࢖༻͸Φεεϝ͠·ͤΜɻ
    wͳͥͳΒɺ૬खʹҙຯෆ໌ͳֆจࣈΛ࢖ͬͨཧ༝Λߟ͑ͤͯ͞͠·͏
    ͨΊͰ͢ɻ

    View Slide

  83. ࿦ཧºײ৘༏উ

    View Slide

  84. ࠷ޙʹ

    View Slide

  85. εΩϧ ढจ
    ίʔυϨϏϡʔ ϝϥκʔϚ
    ίʔυϥΠςΟϯά ϝϥϛ
    ίʔυϦʔσΟϯά ϝϥ
    शಘ
    ೉қ౓

    View Slide

  86. εΩϧ ढจ
    ίʔυϨϏϡʔ ϝϥκʔϚ
    ίʔυϥΠςΟϯά ϝϥϛ
    ίʔυϦʔσΟϯά ϝϥ
    शಘ
    ೉қ౓

    View Slide

  87. ίʔυϨϏϡʔ΍
    ίʔυϦʔσΟϯά͸
    ֶशͷஈ֊෇͚͕ॎʹͳ͍ͬͯͳ͍

    View Slide

  88. ΤϯδχΞͱͯ͠ͷࢹ໺

    View Slide

  89. ΤϯδχΞͱͯ͠ͷࢹ໺

    View Slide

  90. ΤϯδχΞͱͯ͠ͷࢹ໺

    View Slide

  91. ΤϯδχΞͱͯ͠ͷࢹ໺
    ઌഐୡ͕ॻ͘៉ྷͰચ࿅͞Εͨ
    ͓खຊͱͳΔίʔυΛ
    ϨϏϡΞʔͱͯ͠Կ౓΋ݟΔ͜ͱ͕Ͱ͖ͨ

    View Slide

  92. ΤϯδχΞͱͯ͠ͷࢹ໺
    ίʔυϨϏϡʔΛ͢Δ͜ͱͰ
    ϘτϧωοΫͱͳ͍ͬͯͨ
    ϦʔσΟϯάɾϥΠςΟϯάɾઃܭྗɾςετ
    ͷجૅతͳྗ͕ߴ଎Ͱ਎ʹ͍ͭͨ

    View Slide

  93. ΤϯδχΞͱͯ͠ͷࢹ໺
    ίʔυϨϏϡʔΛ௨ͯ͠νʔϜͷΤϯδχΞͱ
    ڞʹϓϩμΫτΛ଄Γ্͛ͳ͕Β࣮ઓͰಘΒΕ
    Δ஌ݟ͸୅͕͍͑ͨ΋ͷ͕͋Δ

    View Slide

  94. ͔ͭͯͷ๻ͷΑ͏ʹ
    ίʔυϨϏϡʔͷҰาΛ
    ౿Έग़ͤͣʹ͍Δ͋ͳͨʂ

    View Slide

  95. νʔϜͷதʹίʔυϨϏϡʔΛ
    ͍ͯ͠ͳ͍ະ੒ख़ͷΤϯδχΞ
    ͞Μ͕͍Δ͋ͳͨʂ

    View Slide

  96. ੋඇ͜ͷػձʹίʔυϨϏϡʔΛ
    ࢝ΊΔɾ༠ͬͯ͋͛Δ
    ͷ͸͍͔͕Ͱ͠ΐ͏͔ʂ✨

    View Slide

  97. ΦϑΟεͷݟֶʹདྷ·ͤΜ͔ʁ
    ڵຯ͋Δํ͓੠͕͚͍ͩ͘͞☺
    ࠷৽ͷ࠾༻৘ใΛνΣοΫˠ [email protected]

    View Slide