万葉のRails新人研修のコードレビューコメントを分析してみました

 万葉のRails新人研修のコードレビューコメントを分析してみました

Railsdm2019 でのトーク資料です。

---

(株) 万葉ではここ2年以上、新入社員教育用カリキュラム(https://github.com/everyleaf/el-training)を利用して、新入社員にRailsの研修を受けてもらっています

本トークでは、これまでの実際の研修で出された数々の Pull Request に社員が寄せたたくさんのコメントを、発話の目的やトピックといったいくつかの観点で分類し、傾向を紹介します。そして、初心者がRailsを学ぶ上で重要なポイントや、周囲がサポートするとよい点、レビューのコツなどについて考察します。

We have been carrying out our Rails training program for new employees for over 2 years in Everyleaf Corporation. In those trainings, many pull requests had been reviewed by other employees.

In this talk I'm going to introduce an analysis of code review comments of those pull requests and think about the important points in learning Rails, supporting beginners and code review styles.

B5689026d84bb3a823c82590eefc3b8f?s=128

Yasuko Ohba

March 22, 2019
Tweet

Transcript

  1. 14.

    ΧϦΩϡϥϜͷεςοϓ 5IF4UFQTJOUIF5SBJOJOH1SPHSBN εςοϓ1: Railsͷ։ൃ؀ڥΛߏங͠Α͏ εςοϓ2: GitHubʹϦϙδτϦΛ࡞੒͠Α͏ εςοϓ3: RailsϓϩδΣΫτΛ࡞੒͠Α͏ εςοϓ4: ࡞Γ͍ͨΞϓϦέʔγϣϯͷΠϝʔδΛߟ͑Α͏

    εςοϓ5: σʔλϕʔεͷ઀ଓઃఆʢपลઃఆʣΛ͠Α͏ εςοϓ6: λεΫϞσϧΛ࡞੒͠Α͏ εςοϓ7: λεΫΛӾཡɾొ࿥ɾߋ৽ɾ࡟আͰ͖ΔΑ͏ʹ ͠Α͏ εςοϓ8: SQLʹ৮ΕͯΈΑ͏ εςοϓ9: E2EςετΛॻ͜͏ εςοϓ10: ΞϓϦͷ೔ຊޠ෦෼Λڞ௨Խ͠Α͏ εςοϓ11: RailsͷλΠϜκʔϯΛઃఆ͠Α͏ εςοϓ12: λεΫҰཡΛ࡞੒೔࣌ͷॱ൪Ͱฒͼସ͑Α͏ εςοϓ13: όϦσʔγϣϯΛઃఆ͠Α͏ εςοϓ14: σϓϩΠΛ͠Α͏ εςοϓ15: ऴྃظݶΛ௥Ճ͠Α͏ εςοϓ16: εςʔλεΛ௥Ճͯ͠ɺݕࡧͰ͖ΔΑ͏ʹ͠ Α͏ εςοϓ17: ༏ઌॱҐΛઃఆ͠Α͏ʢ※ྨࣅ࣮ͨ͠૷ܦݧ ͷ͋Δਓ͸লུՄʣ εςοϓ18: ϖʔδωʔγϣϯΛ௥Ճ͠Α͏ εςοϓ19: σβΠϯΛ౰ͯΑ͏ εςοϓ20: ෳ਺ਓͰར༻Ͱ͖ΔΑ͏ʹ͠Α͏ʢϢʔβͷ ಋೖʣ εςοϓ21: ϩάΠϯ/ϩάΞ΢τػೳΛ࣮૷͠Α͏ εςοϓ22: Ϣʔβͷ؅ཧը໘Λ࣮૷͠Α͏ εςοϓ23: ϢʔβʹϩʔϧΛ௥Ճ͠Α͏ εςοϓ24: λεΫʹϥϕϧΛ͚ͭΒΕΔΑ͏ʹ͠Α͏ εςοϓ25: ΤϥʔϖʔδΛద੾ʹઃఆ͠Α͏
  2. 20.

    13͔Βͷσʔλநग़ 8IBUEBUBDBOCFSFUSJFWFE  ॴଐεςοϓ 4UFQ  w εςοϓʹແؔ܎ͷ13͸લ13ͱಉ͡ͱΧ΢ϯτ  ॴཁ೔਺

    8PSLJOH%BZT  w ։࢝೔͔Βऴྃ೔·Ͱͷ೔਺͔Βٳ೔Λআ֎ w NFSHFE@POTUBSUFE@POIPMJEBZT  ίϛοτ਺ $PVOUPG$PNNJUT   ίϝϯτ਺ $PVOUPG$POWFSTBUJPO
  3. 21.
  4. 30.

    ର৅ϝϯςΟʔ NFOUFFT .FOUFF" εΫʔϧͰ3BJMTΛֶΜͩܦݧ͋Γ ۀ຿Ͱ͸͸͡Ίͯ .FOUFF# 1)1Ͱͷ։ൃܦݧ͋Γ 3BJMTͷຊ֨త։ൃ͸͸͡Ίͯ .FOUFF$ ಠֶͰ3BJMTΛ͞Θͬͨܦݧ͋Γ

    ॳ৺ऀ -FBSOFE3BJMTJO BQSPHSBNNJOHTDIPPM /PFYQFSJFODFPGXPSLJOH BTBQSPHSBNNFS )BTFYQFSJFODFPG1)1 /PFYQFSJFODFPGGVMMTDBMF QSPHSBNNJOHVTJOH3BJMT )BTBMJUUMFFYQFSJFODF PG3BJMTJOIPCCZ "CFHJOOFS
  5. 31.
  6. 35.
  7. 39.
  8. 45.
  9. 47.
  10. 49.
  11. 51.
  12. 70.

    δϟϯϧଟ͍ Ұൠ υΩϡϝϯςʔγϣϯ ࣗಈੜ੒෺ (JUɾ(JU)VCɾ13 ֎෦࢓༷ Ϟσϧ %#ઃܭɾϚΠάϨʔγϣϯ Ϟσϧͷجຊૢ࡞ Ϟσϧͷݕূ

    ϞσϧͷݕࡧʢߜΓࠐΈʣ ϞσϧͷϑΥʔϜରԠ ؔ࿈ 3VCZɾ3BJMTશൠ ίʔσΟϯάελΠϧ ϩδοΫ ར༻ٕज़ͷબ୒ ೔࣌ *O ഑ྻɾϋογϡ "DUJWF4VQQPSU จࣈྻɾ4ZNCPM :".- )5.-ɾ$44 #"4*$ೝূ ΫϥεɾΦϒδΣΫτɾ*'ઃܭ 4FFE ؀ڥ σόοά Ϗϡʔ Ϗϡʔߏ଄ ϑΥʔϜ 'MBTI )FMQFS 4MJN ίϯτϩʔϥ ίϯτϩʔϥߏ଄ɾঢ়ଶ 63-ɾϧʔςΟϯά ςετ ςετ࢓༷ 34QFD $BQZCBSB 'BDUPSZ#PU
  13. 74.
  14. 75.
  15. 76.
  16. 78.
  17. 80.
  18. 94.
  19. 96.

    δϟϯϧ্Ґ̑Ґ "͞Μ #͞Μ  34QFD 34QFD  ςετ࢓༷ ίʔσΟϯάελΠϧ 

    ίʔσΟϯάελΠϧ υΩϡϝϯςʔγϣϯ  υΩϡϝϯςʔγϣϯ JO  Ϟσϧͷݕࡧ 63-ɾϧʔςΟϯά
  20. 120.
  21. 125.

    Ձ஋؍ͷৄࡉ ඼࣭Λྑ͘͢Δ ࢖͍΍͍͢࢓༷ʹ͢Δ ࣮ߦޮ཰Λྑ͘͢Δ ͋ΓಘΔঢ়گΛ͢΂ͯέΞ͢Δ ෆਖ਼ͳঢ়ଶΛ࡞Βͳ͍Α͏ʹ͢Δ ద੾ͳηΩϡϦςΟ ։ൃ࣌ͷߦಈ ศརͳखஈΛ࢖͏ ਖ਼͘͠ཧղ͢Δ

    ϛε΍࿙Εͳ͘ߦ͏ Α͘ར༻͞ΕΔٕज़Λษڧ͓ͯ͘͠ Θ͔Γ΍͘͢͢Δ Ұൠతͳ΍Γํʹ͢Δ γϯϓϧʹ͢Δ ۩ମతʹදݱ͢Δ ݫີʹਖ਼͘͠දݱ͢Δ ౷Ұ͢Δ Θ͔Γ΍͘͢දݱ͢Δ ඞཁͳυΩϡϝϯςʔγϣϯΛ͢Δ มߋ͠΍͘͢͢Δ ڞ௨Խ͢Δ ؔ৺ࣄɾ੹຿Λ෼཭͢Δ কདྷͷมԽʹඋ͑Δ ඞཁͳࣗಈςετΛ༻ҙ͢Δ
  22. 135.
  23. 137.
  24. 139.
  25. 141.
  26. 143.
  27. 153.

    ͲͷՁ஋؍Ͱ࿩͍ͯ͠Δ͔ ҙࣝͯ͠ϨϏϡʔ͢Δ ඼࣭Λྑ͘͢Δ ࢖͍΍͍͢࢓༷ʹ͢Δ ࣮ߦޮ཰Λྑ͘͢Δ ͋ΓಘΔঢ়گΛ͢΂ͯέΞ͢Δ ෆਖ਼ͳঢ়ଶΛ࡞Βͳ͍Α͏ʹ͢Δ ద੾ͳηΩϡϦςΟ ։ൃ࣌ͷߦಈ ศརͳखஈΛ࢖͏

    ਖ਼͘͠ཧղ͢Δ ϛε΍࿙Εͳ͘ߦ͏ Α͘ར༻͞ΕΔٕज़Λษڧ͓ͯ͘͠ Θ͔Γ΍͘͢͢Δ Ұൠతͳ΍Γํʹ͢Δ γϯϓϧʹ͢Δ ۩ମతʹදݱ͢Δ ݫີʹਖ਼͘͠දݱ͢Δ ౷Ұ͢Δ Θ͔Γ΍͘͢දݱ͢Δ ඞཁͳυΩϡϝϯςʔγϣϯΛ͢Δ มߋ͠΍͘͢͢Δ ڞ௨Խ͢Δ ؔ৺ࣄɾ੹຿Λ෼཭͢Δ কདྷͷมԽʹඋ͑Δ ඞཁͳࣗಈςετΛ༻ҙ͢Δ
  28. 155.