コードレビューの話

 コードレビューの話

新卒エンジニア向けにコードレビューを「する」話をしました。
http://hisaichi5518.hatenablog.jp/entry/2014/10/29/165721

4b7536b1ad854fa552a2cea0248bb5cc?s=128

hisaichi5518

October 29, 2014
Tweet

Transcript

  1. (.01FQBCP *OD IJTBJDIJ ৽ଔݚम ίʔυϨϏϡʔͷ࿩

  2. ࣗݾ঺հ ͻ͍ͪ͞

  3. લ৬Ͱ΍ͬͯͨࣄ  ιʔγϟϧήʔϜͷ"1*࡞ͬͯͨ  ϦʔυΤϯδχΞ  ϓϩδΣΫτͷϓϧϦΫɺશ෦ίʔυϨϏϡʔͯ͠ ͨ  ଞͷਓ

    ͻ͍͕ͪ͞0,͢Ε͹ϚʔδΈ͍ͨͳɻ௒ େมͩͬͨʜʜʜʜʜ  ίʔυϨϏϡʔʹ͍ͭͯߟ͑Δ͜ͱ͕ଟ͔ͬͨɻ
  4. ࠓ೔࿩͞ͳ͍ࣄ  ϨϏϡʔͯ͠΋Β͏ͱ͖ͷ࿩  ίʔυϨϏϡʔཷ·Δ໰୊ͱ͔ӡ༻ ͯ͠Δͱग़ͯ͘Δ໰୊  ίʔυϨϏϡʔಋೖ౳ ίʔυϨϏϡʔΛʮ͢Δʯ࿩Λ͠·͢ɻ

  5. ίʔυϨϏϡʔͱ͸  ίʔυϨϏϡʔʢӳ$PEFSFWJFXʣ ͸ɺιϑτ΢ΣΞ։ൃ޻ఔͰݟա͝ ͞ΕͨޡΓΛݕग़ɾमਖ਼͢ΔͨΊʹ ιʔείʔυͷମܥతͳݕࠪʢࠪಡʣ Λߦ͏͜ͱɻ

  6. ίʔυϨϏϡʔͱ͸  ίʔυϨϏϡʔʢӳ$PEFSFWJFXʣ ͸ɺιϑτ΢ΣΞ։ൃ޻ఔͰݟա͝ ͞ΕͨޡΓΛݕग़ɾमਖ਼͢ΔͨΊʹ ιʔείʔυͷମܥతͳݕࠪʢࠪಡʣ Λߦ͏͜ͱɻ

  7. ຊ౰ʹ ͦΕ͚ͩʁ

  8. ίʔυϨϏϡʔͷ໨త  ػցతʹൃݟग़དྷͳ͍ޡΓͷൃݟ  ٕज़ྗ޲্  ଐਓੑഉআ

  9. ͜ͷͭͷதͰ ৽ଔࢯ͕ʮࠓʯٻΊΒΕΔࣄ

  10. ʮࠓʯɺ৽ଔࢯͨͪʹظ଴͞ΕΔͰ͋Ζ͏͜ͱ  ٕज़ྗ޲্  ଐਓੑͷഉআ

  11. ίʔυϨϏϡʔͷ໨త  ػցతʹൃݟग़དྷͳ͍ޡΓͷൃݟ  ٕज़ྗ޲্  ଐਓੑഉআ ͍ͭ͜͸ʁʁʁ

  12. ϨϕϧͱϨϕϧ  Կࣄʹ΋ஈ֊͕͋Δ  Ϩϕϧͱʹ෼͚ͯɺ·ͣ͸Ϩϕϧ Λग़དྷΔΑ͏ʹ͢Δɻ

  13. ֤໨తͷΰʔϧ  ٕज़ྗ޲্  ίʔυ͕ͳͥͦ͏ͳ͍ͬͯΔͷ͔ཧղग़ དྷΔ  ଐਓੑͷഉআ  ίʔυ͕ͳͥͦ͏ͳ͍ͬͯΔͷ͔ཧղग़

    དྷΔ
  14. ·Δͬͱ·ͱΊͯ ίʔυΛཧղ͢Δ

  15. Ϩϕϧ ίʔυΛཧղ͢Δ

  16. ίʔυΛཧղ͢Δͬͯ Ͳ͏͢Ε͹͑͑Μ΍ʜ ೉͍͠Θʜʜʜ

  17. ϨϕϧΛୡ੒͢ΔͨΊͷ ίʔυϨϏϡʔʹ͓͍ͯ ΍Δ͜ͱ͸͚ͭͩ

  18. Θ͔Βͳ͍ࣄΛฉ͘

  19. ίʔυ͕ཧղͰ͖ΔΑ͏ʹͳΔʹ͸  ͳΜͰ͜͏ͳ͍ͬͯΔͷ͔ʁΛߟ ͑ͳ͕ΒίʔυΛಡΉ  Θ͔Βͳ͍ͱ͜Ζ͕͋Δͱ೰Ή  ෼೰ΜͩΒࣗ෼Ͱ͸Θ͔Βͳ ͍ͱ൑அͯ͠ฉ͘ɻ

  20. ίʔυ͕ཧղͰ͖ΔΑ͏ʹͳΔʹ͸  ʮͳΜͰ͜͜ʹϝιουॻ͍ͯΔΜͩΖʯ  ʮͳΜͰ"͡Όͳͯ͘#ͬͯॻ͖ํͳΜͩΖʁʯ  ʮͳΜͰ͜͜Ͱ"ͯ͠ΔΜͩΖʁʯ  ʮͳΜͰʜʜʜʜʜʯ 

    ʮͳΜͰͳΜ΍ʜʜʜʜʯ  ʮͳΜͰʙʙʙʙʙʙʯ
  21. ͳΜͰɾ೰Ήɾฉ͘ Λ܁Γฦ͍ͯ͠Δͱ Ϩϕϧ͕ग़དྷΔΑ͏ʹͳΔ

  22. ͳΜͰɾ೰Ήɾฉ͘ Λ܁Γฦ͍ͯ͠Δͱ ίʔυ͕ཧղग़དྷΔΑ͏ʹͳΔ

  23. Ϩϕϧୡ੒

  24. ίʔυϨϏϡʔͷ໨త  ػցతʹൃݟग़དྷͳ͍ޡΓͷൃݟ  ٕज़ྗ޲্  ଐਓੑഉআ ࣍͸ɺ͍ۙকདྷٻΊΒΕΔɺίΠπʂʂʂ̍̍

  25. Ϩϕϧ ػցతʹൃݟग़དྷͳ͍ޡΓͷ ൃݟ

  26. ػցతʹൃݟग़དྷΔ΋ͷ  42-ͷ/ ໰୊  ίʔυͷϑΥʔϚοτ

  27. 42-/ ໰୊  ϧʔϓͷதͰ42-ൃߦ͠·͘Γ  ճϧʔϓͨ͠Β42-͕ ճୟ͔ΕΔʢ˔ʆЏ˔ʣ  3BJMTʹ͸ɺCVMMFUͱ͍͏ͷ͕͋Δ 

    CVMMFU͸ɺ/ ໰୊Λൃݟग़དྷΔ
  28. ίʔυϑΥʔϚοτ  SVCPDPQͱ͔Λ࢖ͬͯɺελΠϧʹ ҧ൓ͨ͠ΒKFOLJOT͕͚͜Δͱ͔͢ Δɻ

  29. None
  30. ػցతʹΘ͔Δ΋ͷ͸ ػցʹ೚ָͤͯΛ͢Δ

  31. ػցతʹൃݟग़དྷͳ͍PSग़དྷΔ͕খ೉͍͠  ηΩϡϦςΟ  42-  ϨʔείϯσΟγϣϯ  ࢓༷ͱίʔυͷໃ६ 

    ࣮ߦ଎౓  ઃܭ  Θ͔Γ΍͢͞  "ͱ#ɺͲͪΒ͕φ΢͍ʁ
  32. ηΩϡϦςΟ  944  $43'  42-ΠϯδΣΫγϣϯ  ৄ͘͠͸

  33. 42-  ΠϯσοΫε࢖ΘΕͯͳ͍  ΠϯσοΫεແବʹషͬͯΔ

  34. ϨʔείϯσΟγϣϯ  ಉ࣌ʹ࣮ߦ͞ΕͨΒ͏ΜͨΒ͔Μͨ Βʂʂʂʂʂʂʂʂʂʂʂʂʂ

  35. ࢓༷ͱίʔυͷໃ६  ͦ΋ͦ΋͜ͷίʔυɺ࢓༷ʹ߹ͬͯ ͳ͍݅  ςετҙຯͳ͍݅

  36. ࣮ߦ଎౓  ͬͪ͜ͷํ͕ૣ͘Ͷʁʁʁʁ  ඞͣϕϯνϚʔΫऔΔ  Ωϟογϡͨ͠ํ͕͍͍͔΋ɺΈͨ ͍ͳ࿩ͱ͔΋͢Δ

  37. ઃܭ  ίϯτϩʔϥʔʹϩδοΫΛॻ͘΂ ͖Ͱ͸ͳ͍͏ΜͨΒ͔ΜͨΒ  ίʔυϨϏϡʔͷ࣌఺Ͱ͜ͷ࿩͕ग़ ΔΑ͏Ͱ͋Ε͹ɺίʔυΛॻ͘લʹ ૬ஊ͢ΔΑ͏ʹ͢Δɻ

  38. Θ͔Γ΍͢͞  "ͱ#ɺൺ΂Δͱ"ͷํ͕Θ͔Γ΍͍͢ʂʂ̍  WJNWT&NBDTͷΑ͏ͳͨͩͷԥΓ߹͍ʹͳ ΔՄೳੑ͕͋Δ  ౴͕͑ͳ͍΋ͷʹؔͯ͠͸ɺର໘Ͱ࿩͢  ʙ෼࿩ͯ͠ෆໟͱࢥͬͨΒෆໟͰ͢Ͷͬ

    ͯݴͬͯऴΘΒͤΔɻ
  39. "ͱ#ɺͲ͕ͬͪφ΢͍ʁ  ࠓ͸ɺͬͪ͜ͷ΄͏͕φ΢͍ͥʂΈ ͍ͨͳͷ݁ߏ͋Δ  άάͬͯݟ͚ͭͨͷ͕Φϫίϯʹͳͬ ͯΔՄೳੑ΋ʂʂʂʂʂ

  40. ʢ˔ʆЏʅ˔ʣ

  41. Ϩϕϧ ϝονϟϜζΠ

  42. ͜ΕΒ͕ग़དྷΔΑ͏ʹͳΔʹ ͸ɺ༷ʑͳ஌ࣝɾܦݧ͕ඞཁ

  43. ͦͯ͠ɺେલఏͱͯ͠ ଞͷਓͷίʔυΛݟͯ ཧղग़དྷΔඞཁ΋͋Δɻ

  44. ͦΜͳ͜ΜͳͰ

  45. ίʔυϨϏϡʔͷ໨తΛཧղͯ͠ ࠓɺ΍Δ΂͖͜ͱ΋ཧղग़དྷɺ ͦͷ΍Γํ΋ཧղग़དྷͨɻ ͦͷ࣍ʹ΍Δ͜ͱ΋Θ͔ͬͨʂʂ ΋͏ίʔυϨϏϡʔ͸׬ᘳʂʂ

  46. Ͱ͸ͳ͍ͷͰ͢ʜ

  47. ୈೋ෦ ίʔυϦʔσΟϯάฤ

  48. ίʔυΛಡΉɻ τςϞɺϜζΧγΠ

  49. ࠷ߴͷಡΈํΛ ڭ͑ͯ΄͍͠ʂ

  50. Զ͕஌Γ͍ͨ Θʂʂʂʂʂ ʂʂʂʂʂʂ ʂʂʂʂʂʂ

  51. ίʔυϨϏϡʔ࣌ͷಡΈํ ʙͻ͍ͪ͞ฤʙ

  52. ݸͷεςοϓ

  53. ղܾ͍ͨ͠໰୊Λཧղ͢Δ  ϓϧϦΫͷαϚϦʔΛಡΉ  Կ͕͍͔ͨ͠  ԿͷͨΊʹ͢Δͷ͔

  54. ςετ͕௨ͬͯΔ͔֬ೝ  ςετ௨ͬͯͳ͍ͱجຊతʹ͸ݟͳ ͍

  55. ίϛοτϩάͱมߋ͞ΕͨίʔυΛશ෦ݟΔ  ҰͭҰͭݟΔ  ίϛοτϩάʹͳΜͰͦ͏͔ͨ͠ॻ͔ΕͯΔࣄ ͕͋ΔͷͰίϛοτϩάΛݟΔɻ  ؾʹͳΔͱ͜Ζɾٙ໰͕͋ͬͨΒϝϞ͓ͯ͘͠  ݟͨॠؒʹίϝϯτͨ͘͠ͳΔͷͰɺखݩͰUJH

    Λ࢖ͬͯݟΔɻ
  56. ಈ͔ͯ͠ΈΔ  ίϛοτϩάΛશ෦ோΊऴΘͬͨΒɺ ؾʹͳͬͨͱ͜Ζͱ͔खݩͰಈ͔͠ ͯΈΔ

  57. 'JMFT$IBOHFEΛோΊΔ  શମͷ%J⒎ΛݟΔɻ  εςοϓͰϝϞͨ͠ͱ͜Ζͷ੔ཧ

  58. 'JMFT$IBOHFEͷͱ͜ΖʹίϝϯτΛॻ͘  ϝϞͨ͠ͱ͜ΖΛ(JUIVCʹίϝϯτ ͍ͯ͘͠

  59. ͜ͷݸͷεςοϓ ຖճ΍Δඞཁ͋Δʁ

  60. ͳ͍Ͱ͢

  61. ͜ͷ΍Γํ͸ϕετͰ͸ͳ͍͠ɺ ϕετ͸ଘࡏ͠ͳ͍ɻ ࣗ෼ͳΓͷ΍ΓํΛ୳͠ଓ͚Δ͔͠ͳ͍ɻ

  62. ͦΜͳ͜ΜͳͰ

  63. ུ  ΋͏ίʔυϨϏϡʔ ͸׬ᘳʂʂ

  64. Ͱ͸ͳ͍ͷͰ͢ʜ

  65. ୈࡾ෦ ఻͑ํׂ͕ฤ

  66. ͜ͷεϥΠυΛ࡞Δʹ౰ͨͬͯɺ લ৬ޙഐ !.BDP@5BTV ʹ νʔϜʹδϣΠϯͨ࣌͠ͷ ίʔυϨϏϡʔʹ͍ͭͯฉ͍ͯΈͨɻ

  67. ҙ͍ࣝͯͨ͜͠ͱ͸ʁ  ʮͳΜͰ͜͏ͯ͠ΔΜͩʁʯ͓ͬͯ ΋ͬͨΒ·ͣฉ͘  ϨϏϡʔͷॻ͖ํ

  68. ҙ͍ࣝͯͨ͜͠ͱ͸ʁ  ʮͳΜͰ͜͏ͯ͠ΔΜͩʁʯ͓ͬͯ ΋ͬͨΒ·ͣฉ͘  ϨϏϡʔͷॻ͖ํ

  69. ԿނɺϨϏϡʔͷॻ͖ํΛ ҙࣝ͢Δඞཁ͕͋Δͷ͔ʁ

  70. ࠔͬͨ͜ͱ͸ʁ  ઌഐ͕ාͯ͘ࢥͬͨ͜ͱ͕ॻ͚ͳ͍  ࣗ෼͸ྗྔແ͍ͷʹͦΜͳϨϏϡʔ ͰҒͦ͏ͳ͜ͱݴ͍͍ͬͯͷ͔

  71. ਓ͕͍ؒΔͱ΄΅࣮֬ʹਓؒؔ܎ͷ໰ ୊͸ग़ͯ͘Δɻ ਓؒؔ܎ͷ໰୊͸ɺޡղ͔Β࢝·Δ͜ ͱ͕ଟ͍ͱ๻͸ࢥ͍ͬͯΔɻ إΛ߹ΘͤͣʹߦΘΕΔίʔυϨϏϡʔ ͸ɺͦͷޡղΛੜΈग़͢৔ॴʹͳΔՄ ೳੑ͕͋Δͱ΋ࢥ͍ͬͯͯɺϨϏϡʔ ͷॻ͖ํΛؾΛ͚ͭΔ͜ͱͰɺͦ͏͍ͬ ͨޡղΛੜ·ΕΔͷΛগͳ͘͢Δ΂͖ɻ

  72. ਓؒؔ܎Ͱ೰Έͨ͘ͳ͍ͷͰɺ ޡղ͞Εͳ͍Α͏ʹ͢Δɻ

  73. ఻͑ํΛஸೡʹ͢Δ

  74. ཧ༝Λॻ͘

  75. ཧ༝Λॻ͘  ʮ΄͛΄͛ɺΑ͘ͳ͍ؾ͕͠·͢ʯ  ʮ΄͛΄͛͸"ͳͷͰɺΑ͘ͳ͍ؾ ͕͠·͢ʯ

  76. ๙ΊΔ

  77. ๙ΊΔ  ʮ΄͛΄͛͸"ͳͷͰɺΑ͘ͳ͍ؾ ͕͠·͢ʯ  ʮ͜ͷίʔυՄѪ͍ΜͰ͕͢ɺ΄͛ ΄͛͸"ͳͷͰɺΑ͘ͳ͍ؾ͕͠· ͢ʯ

  78. ఏҊ͢Δ

  79. ఏҊ͢Δ  ʮ΄͛΄͛͸"ͳͷͰɺΑ͘ͳ͍ؾ ͕͠·͢ʯ  ʮ΄͛΄͛͸"ͳͷͰɺΑ͘ͳ͍ؾ ͕͠·͢ɻ;͕;͕ͷํ͕͍͍ͱ ࢥͬͨΜͰ͕͢ɺͲ͏Ͱ͠ΐ͏ʯ

  80. ఏҊʹ΋ཧ༝Λॻ͘

  81. ఏҊʹ΋ཧ༝Λॻ͘  ʮ΄͛΄͛͸"ͳͷͰɺΑ͘ͳ͍ؾ͕͠ ·͢ɻ;͕;͕ͷํ͕͍͍ͱࢥͬͨΜͰ ͕͢ɺͲ͏Ͱ͠ΐ͏ʯ  ʮ΄͛΄͛͸"ͳͷͰɺΑ͘ͳ͍ؾ͕͠ ·͢ɻ;͕;͕ͷํ͕ղফ͞Εɺ͔ͭ#ͳ ͷͰྑ͍ͱࢥͬͨΜͰ͕͢ɺͲ͏Ͱ͠ΐ ͏ʯ

  82. ͳΜͳΒ ίʔυͰࣔ͢

  83. ͳΜͳΒίʔυͰࣔ͢  ʮ΄͛΄͛͸"ͳͷͰɺΑ͘ͳ͍ؾ͕͠· ͢ɻ;͕;͕ͷํ͕ղফ͞Εɺ͔ͭ#ͳͷ Ͱྑ͍ͱࢥͬͨΜͰ͕͢ɺͲ͏Ͱ͠ΐ͏ʯ  ʮ΄͛΄͛͸"ͳͷͰɺΑ͘ͳ͍ؾ͕͠· ͢ɻ;͕;͕ͷํ͕ղফ͞Εɺ͔ͭ#ͳͷ Ͱྑ͍ͱࢥͬͨΜͰ͕͢ɺͲ͏Ͱ͠ΐ͏ʁ ͜͏͍͏ײ͡Ͱ͢ʯ

  84. ╹◡╹ ŷţƄţŝƄƂƁŦʙ

  85. େৎ෉ʂʂʂʂʂʂ ஈ֊͕͋Δʂʂʂʂ

  86. ͜ͷ࿩͸ɺ͖ͬ͞࿩ͨ͠Ϩϕϧ͕ग़དྷ Δਓୡ͕΍Δ΂͖͜ͱɻ ୭ʹͰ΋ग़དྷΔɺ؆୯ͳ΋ͷ͕͋Δʂʂʂ

  87. σδλϧจࣈʹ͸ ײ৘͕͜΋Γʹ͍͘ ͱ͍͏࿩

  88. ର໘Ͱ࿩͍ͯ͠Δͱإ͕ݟ͑Δɻ ද৘͕Θ͔Δ ޡղʹܨ͕Γʹ͍͘

  89. จࣈͷΈͩͱ إ͕ͳ͍ ද৘͕ͳ͍ ޡղʹܨ͕Γ΍͍͢

  90. None
  91. ͲͪΒ͕ΊͰ͍ͨ ͱײ͡Δʁ

  92. ʮ͍͍ͱࢥ͍·͢ʯ

  93. -(5.-PPLT(PPE5P.F

  94. ͲͪΒ΋ಉ͡ҙຯͳͷʹɺ શ͘ΊͰ͕ͨ͞ҧ͏ɻ

  95. None
  96. ΋ͬͱ ΊͰͨ͘Ͱ͖Δ

  97. ΊͰͨ͘͢Δͱ͸

  98. ײ৘ׂ૿ʂʂʂ

  99. None
  100. None
  101. ϨϏϡʔͰྑͦ͞͏ ͱࢥͬͨΒ࢖͏ɻ

  102. None
  103. None
  104. None
  105. None
  106. MHUNJO IUUQMHUNJO

  107. UJRBWDPN IUUQUJRBWDPN

  108. ͓ͬ͞Μ-(5.͹͔Γͩͱ ͭΒ͍ͷͰɺඒঁ-(5. IUUQIJTBJDIJIBUFOBCMPHKQFOUSZ 

  109. &NPKJ

  110. None
  111. ,BPNPKJ

  112. None
  113. 

  114. None
  115. ͦΜͳ͜ΜͳͰ

  116. ུ  ΋͏ίʔυϨϏϡʔ ͸׬ᘳʂʂ

  117. ͱࠓ͸ࢥͬͱ ͜ʂʂʂ

  118. ࠓ೔࿩ͨ͜͠ͱ  ίʔυϨϏϡʔͷ໨త  ࠓ΍Δ΂͖͜ͱɾͦͷ΍Γํ  ࣍ʹ΍Δ͜ͱ  ϨϏϡʔͷ࢓ํʢͻ͍ͪ͞ฤʣ 

    ϨϏϡʔ͸఻͑ํׂ͕  ײ৘ࡾׂ૿͠ͰΊͰͨ͞Ξοϓ
  119. ࢀߟॻ੶63-ਓؒ  !.BDP@5BTV  ఻͑ํׂ͕  IUUQTHJTUHJUIVCDPN.BDP5BTV DEEECBGFEC  IUUQIJUPEFIBUFOBCMPHDPNFOUSZ

      IUUQTIJCBZVIBUFOBCMPHDPNFOUSZ   IUUQIBLPCFIBUFOBCMPHDPNFOUSZ