$30 off During Our Annual Pro Sale. View details »

コードレビューをカイゼンする基本の考え方 / How to kaizen code reviewing

mazamachi
December 01, 2021

コードレビューをカイゼンする基本の考え方 / How to kaizen code reviewing

2021-12-01 開催のコードレビュー LT会 #codereviewlt で LT した際の資料です。 https://rakus.connpass.com/event/227733/

レビューすることを減らそうという話をしてます。

mazamachi

December 01, 2021
Tweet

Other Decks in Programming

Transcript

  1. ίʔυϨϏϡʔΛΧΠθϯ͢Δ جຊͷߟ͑ํ 2021-12-01ɹίʔυϨϏϡʔ LTձɹ#codereviewltɹ ٶ㟒ষଠ @mazamachiʢגࣜձࣾHERPʣ

  2. ͖ΐ͏ݴ͍͍ͨ͜ͱ

  3. ίʔυϨϏϡʔͰ͸
 ʓʓͷʓʓʓʓʓͱʓʓʓͰ ϨϏϡʔ͢Δ͜ͱΛݮΒͦ͏

  4. ίʔυϨϏϡʔͰ͸
 ʓʓͷʓʓʓʓʓͱʓʓʓͰ ϨϏϡʔ͢Δ͜ͱΛݮΒͦ͏

  5. ͜͜ͰCMͰ͢ • ٶ㟒ষଠ @mazamachi

  6. ͜͜ͰCMͰ͢ • ٶ㟒ষଠ @mazamachi • גࣜձࣾHERP

  7. ͜͜ͰCMͰ͢ • ٶ㟒ষଠ @mazamachi • גࣜձࣾHERPιϑτ΢ΣΞΤϯδχΞ • όοΫΤϯυ։ൃɺϑϩϯτΤϯυ։ൃɺཁ݅ఆٛɺϓϩϚωɺ
 UXϦαʔνɺ࠾༻׆ಈɺΧελϚʔαΫηεɺͳͲͳΜͰ΋԰

  8. ͜͜ͰCMͰ͢ • ٶ㟒ষଠ @mazamachi • גࣜձࣾHERPιϑτ΢ΣΞΤϯδχΞ • όοΫΤϯυ։ൃɺϑϩϯτΤϯυ։ൃɺཁ݅ఆٛɺϓϩϚωɺ
 UXϦαʔνɺ࠾༻׆ಈɺΧελϚʔαΫηεɺͳͲͳΜͰ΋԰ •

    ΧΠθϯதಟ
  9. ίʔυϨϏϡʔͰ͸
 ʓʓͷʓʓʓʓʓͱʓʓʓͰ ϨϏϡʔ͢Δ͜ͱΛݮΒͦ͏

  10. ͨ·ʹى͖ͯͨϛε ৽نϝϯόʔ ϨϏϡϫʔ ίʔυॻ͍ͯΈͨʂϨϏϡʔ͓ئ͍͠·͢ let ͡Όͳͯ͘ const ࢖ͬͯͶ ม਺໊͸খจࣈͰ͓ئ͍͠·͢ Ͳ͏͍͏ಈ࡞֬ೝ͔ͨ͠ڭ͍͑ͯͩ͘͞

    ௚ͯ͠Έ·ͨ͠ʂ ͋Γ͕ͱ͏ʂ approve Ͱ͢
  11. ͨ·ʹى͖ͯͨϛε ৽نϝϯόʔ ϨϏϡϫʔ ίʔυॻ͍ͯΈͨʂϨϏϡʔ͓ئ͍͠·͢ let ͡Όͳͯ͘ const ࢖ͬͯͶ ม਺໊͸খจࣈͰ͓ئ͍͠·͢ Ͳ͏͍͏ಈ࡞֬ೝ͔ͨ͠ڭ͍͑ͯͩ͘͞

    ௚ͯ͠Έ·ͨ͠ʂ ͋Γ͕ͱ͏ʂ approve Ͱ͢ ޙʹ΋ͬͱେ͖ͳ໰୊ʢόά΍ઃܭϛεʣ͕ൃ֮
  12. ͨ·ʹى͖ͯͨϛε ৽نϝϯόʔ ϨϏϡϫʔ ίʔυॻ͍ͯΈͨʂϨϏϡʔ͓ئ͍͠·͢ let ͡Όͳͯ͘ const ࢖ͬͯͶ ม਺໊͸খจࣈͰ͓ئ͍͠·͢ Ͳ͏͍͏ಈ࡞֬ೝ͔ͨ͠ڭ͍͑ͯͩ͘͞

    ௚ͯ͠Έ·ͨ͠ʂ ͋Γ͕ͱ͏ʂ approve Ͱ͢ ޙʹ΋ͬͱେ͖ͳ໰୊ʢόά΍ઃܭϛεʣ͕ൃ֮ ύοͱ໨ʹͭ͘໰୊͹͔Γ ϨϏϡʔͯ͠͠·͏
  13. ϨϏϡʔʹ·ͭΘΔೝ஌όΠΞε • Մ༻ੑώϡʔϦεςΟοΫɿೝࣝɺཧղɺܾఆͷࡍʹɺࢥ͍ग़͠΍͢ ͍৘ใ͚ͩʹج͍ͮͯ൑அ͢Δ܏޲ • ϑΥʔΧεޮՌɿ࠷ॳʹ઀ͨ͠৘ใʹҾ͖ͣΒΕɺ෺ࣄͷશମ૾Ͱ͸ ͳ͘Ұ෦෼ͷଆ໘͔͠ݟΑ͏ͱ͠ͳ͍܏޲ • ϢχοτόΠΞεɿ՝୊Λऴྃ͢Δࣄʹ஫ҙΛूத͢Δ܏޲ɻԿͰ͋ Εɺ΍Γऴ͑Δࣄʹਓؒ͸ຬ଍Λײ͡Δ

    ٱᜌঘ΄͔ɽʮ࡞੒ऀͷೝ஌όΠΞεʹண໨ͨ͠ϨϏϡʔख๏ͷఏҊʯ42J1ݚڀձɽΑΓҾ༻
  14. େ͖͍໰୊ʹϑΥʔΧε͢ΔͨΊʹ

  15. ίʔυϨϏϡʔͰ͸
 ʓʓͷʓʓʓʓʓͱʓʓʓͰ ϨϏϡʔ͢Δ͜ͱΛݮΒͦ͏

  16. ίʔυϨϏϡʔͰ͸
 ࣄલͷ͢Γ߹ΘͤͱࣗಈԽͰ ϨϏϡʔ͢Δ͜ͱΛݮΒͦ͏

  17. Happy Story ৽نϝϯόʔ ϨϏϡϫʔ ͳΔ΄Ͳɺ͜ͷ repository Ͱ͸͜͏ॻ͘ͷ͔ let ͡Όͳͯ͘ const

    ࢖ͬͯͶ ม਺໊͸খจࣈͰ͓ئ͍͠·͢ ͜͜ͷίʔυɺ͜͏ॻ͍ͨ΄͏͕ྑ͍ͱࢥ͏ ͜͜ςετέʔε଍ͨ͠΄͏͕ྑ͍Α ͜͏͍͏࣌ʹόάΓͦ͏ ࣄલઆ໌จॻ CI
  18. Happy Story ৽نϝϯόʔ ϨϏϡϫʔ ͳΔ΄Ͳɺ͜ͷ repository Ͱ͸͜͏ॻ͘ͷ͔ let ͡Όͳͯ͘ const

    ࢖ͬͯͶ ม਺໊͸খจࣈͰ͓ئ͍͠·͢ ͜͜ͷίʔυɺ͜͏ॻ͍ͨ΄͏͕ྑ͍ͱࢥ͏ ͜͜ςετέʔε଍ͨ͠΄͏͕ྑ͍Α ͜͏͍͏࣌ʹόάΓͦ͏ ࣄલઆ໌จॻ CI ೉͍͚͠Ͳେࣄͳ෦෼ʹूதͯ͠ϨϏϡʔͰ͖Δ
  19. Ͳ͏΍ͬͯΧΠθϯ͢Δʁ

  20. ίʔυϨϏϡʔͰݟΔ͜ͱ • ίʔσΟϯάن໿ʹԊ͍ͬͯΔ͔ • ςετ͸ॻ͍ͯ͋Δ͔ • ςετ͸௨Δͷ͔ • ςετέʔε͸ద੾͔ •

    ୭ͷϨϏϡʔ͕ඞཁ͔ • ࣮ࡍʹಈ͘ͷ͔ • อकੑͷߴ͍ίʔυʹͳ͍ͬͯΔ͔ • σϓϩΠ͢ΔࡍʹͲΜͳ४උ͕ඞཁ͔ • GIt ͷίϛοτϩά͸ݟ΍͘͢ͳ͍ͬͯΔ͔ • Θ͔Γ΍͍͢ίϝϯτ͸ॻ͍ͯ͋Δ͔ • ΑΓྑ͍ॻ͖ํ͸ͳ͍͔ • ར༻ϥΠϒϥϦͷόʔδϣϯ͸ద੾͔ • etc…
  21. ࣗಈԽ
 ͠΍͍͢ ඞཁͳ஌͕ࣝଟ͍ ඞཁͳ஌͕ࣝগͳ͍ ࣗಈԽ
 ͮ͠Β͍

  22. ίʔσΟϯάن໿ʹ
 Ԋ͍ͬͯΔ͔ GIt ͷίϛοτϩά͸ ݟ΍͘͢ͳ͍ͬͯΔ͔ ςετέʔε͸ద੾͔ ࣮ࡍʹಈ͘ͷ͔ ΑΓྑ͍ॻ͖ํ͸ͳ͍͔ Θ͔Γ΍͍͢ίϝϯτ͸ ॻ͍ͯ͋Δ͔

    อकੑͷߴ͍ίʔυʹ ͳ͍ͬͯΔ͔ σϓϩΠ͢Δࡍʹ ͲΜͳ४උ͕ඞཁ͔ ࣗಈςετ͸௨Δͷ͔ ୭ͷϨϏϡʔ͕ ඞཁ͔ ར༻ϥΠϒϥϦͷ όʔδϣϯ͸ద੾͔ ࣗಈԽ
 ͠΍͍͢ ඞཁͳ஌͕ࣝଟ͍ ඞཁͳ஌͕ࣝগͳ͍ ࣗಈԽ
 ͮ͠Β͍
  23. ίʔσΟϯάن໿ʹ
 Ԋ͍ͬͯΔ͔ GIt ͷίϛοτϩά͸ ݟ΍͘͢ͳ͍ͬͯΔ͔ ςετέʔε͸ద੾͔ ࣮ࡍʹಈ͘ͷ͔ ΑΓྑ͍ॻ͖ํ͸ͳ͍͔ Θ͔Γ΍͍͢ίϝϯτ͸ ॻ͍ͯ͋Δ͔

    อकੑͷߴ͍ίʔυʹ ͳ͍ͬͯΔ͔ σϓϩΠ͢Δࡍʹ ͲΜͳ४උ͕ඞཁ͔ ࣗಈςετ͸௨Δͷ͔ ୭ͷϨϏϡʔ͕ ඞཁ͔ ᶃ ࣗಈԽͰ Ͳ͏ʹ͔ͳΔ ྖҬ ᶄ ࣄલʹ͢Γ߹Θͤ Δ΂͖ྖҬ ίʔυϨϏϡʔ ͢Δ΂͖ྖҬ ࣗಈԽ
 ͠΍͍͢ ඞཁͳ஌͕ࣝଟ͍ ඞཁͳ஌͕ࣝগͳ͍ ࣗಈԽ
 ͮ͠Β͍
  24. ίʔσΟϯάن໿ʹ
 Ԋ͍ͬͯΔ͔ GIt ͷίϛοτϩά͸ ݟ΍͘͢ͳ͍ͬͯΔ͔ ςετέʔε͸ద੾͔ ࣮ࡍʹಈ͘ͷ͔ ΑΓྑ͍ॻ͖ํ͸ͳ͍͔ Θ͔Γ΍͍͢ίϝϯτ͸ ॻ͍ͯ͋Δ͔

    อकੑͷߴ͍ίʔυʹ ͳ͍ͬͯΔ͔ σϓϩΠ͢Δࡍʹ ͲΜͳ४උ͕ඞཁ͔ ࣗಈςετ͸௨Δͷ͔ ୭ͷϨϏϡʔ͕ ඞཁ͔ ᶃ ࣗಈԽͰ Ͳ͏ʹ͔ͳΔ ྖҬ ᶄ ࣄલʹ͢Γ߹Θͤ Δ΂͖ྖҬ ίʔυϨϏϡʔ ͢Δ΂͖ྖҬ ࣗಈԽ
 ͠΍͍͢ ඞཁͳ஌͕ࣝଟ͍ ඞཁͳ஌͕ࣝগͳ͍ ࣗಈԽ
 ͮ͠Β͍
  25. ᶃࣗಈԽͷྫ • CI্ͰϏϧυ΍ςετΛ૸ΒͤΔ • CIͰࣗಈϑΥʔϚολʢe.g. Prettierʣ΍ Linter (e.g. eslint) ΋૸ΒͤΔ

    • GitHub ͷػೳͷ Problem Matchers Λ࢖͏ͱɺ
 ίʔυϨϏϡʔͬΆ͍ίϝϯτΛࣗಈͰ͚ͭͯ͘Εͯศར • CODEOWNERSϑΝΠϧΛ׆༻ͯ͠ɺࣗಈͰ review request ग़དྷΔΑ͏ʹ͢Δ • CI ্ͰϥΠϒϥϦΠϯετʔϧͯ͠ lock ϑΝΠϧͱࠩ෼͕ͳ͍͔νΣοΫ͢Δ
  26. ίʔσΟϯάن໿ʹ
 Ԋ͍ͬͯΔ͔ GIt ͷίϛοτϩά͸ ݟ΍͘͢ͳ͍ͬͯΔ͔ ςετέʔε͸ద੾͔ ࣮ࡍʹಈ͘ͷ͔ ΑΓྑ͍ॻ͖ํ͸ͳ͍͔ Θ͔Γ΍͍͢ίϝϯτ͸ ॻ͍ͯ͋Δ͔

    อकੑͷߴ͍ίʔυʹ ͳ͍ͬͯΔ͔ σϓϩΠ͢Δࡍʹ ͲΜͳ४උ͕ඞཁ͔ ࣗಈςετ͸௨Δͷ͔ ୭ͷϨϏϡʔ͕ ඞཁ͔ ᶃ ࣗಈԽͰ Ͳ͏ʹ͔ͳΔ ྖҬ ᶄ ࣄલʹ͢Γ߹Θͤ Δ΂͖ྖҬ ίʔυϨϏϡʔ ͢Δ΂͖ྖҬ ࣗಈԽ
 ͠΍͍͢ ඞཁͳ஌͕ࣝଟ͍ ඞཁͳ஌͕ࣝগͳ͍ ࣗಈԽ
 ͮ͠Β͍
  27. ᶄࣄલ͢Γ߹Θͤͷྫ • pull_request_template.md Λ׆༻ͯ͠ɺPR description ʹॻ͘΂͖಺༰Λ ຖճΘ͔Γ΍͘͢͢Δ • ࣾ಺ wiki

    ʢScrapboxʣʹ README ΍ CONTRIBUTING.md తͳ಺༰Λ༻ ҙ͢Δ • GitHub ্Ͱϝϯς͢ΔͱɺPRग़͢ඞཁ͕͋ͬͯ໘౗ɻߋ৽͠΍͍͢৔ ॴʹ͋ͬͨ΄͏͕ྑ͍ͱߟ͍͑ͯΔɻ • Θ͔Γ΍͔ͬͨ͢/ϨϏϡʔͰྑ͘ͳͬͨPRΛެͷ৔Ͱশ͑Δ
  28. ᶄࣄલ͢Γ߹Θͤͷྫ

  29. ίʔυϨϏϡʔͰ͸
 ࣄલͷ͢Γ߹ΘͤͱࣗಈԽͰ ϨϏϡʔ͢Δ͜ͱΛݮΒͦ͏

  30. ίʔυϨϏϡʔͰ͸
 ࣄલͷ͢Γ߹ΘͤͱࣗಈԽͰ ϨϏϡʔ͢Δ͜ͱΛݮΒͦ͏ ΧΠθϯ஌ݟ͋ͬͨΒ ڭ͑߹͍·͠ΐ͏ʂ

  31. ࢀߟจݙ • ٱᜌ ঘ΄͔ɽʮ࡞੒ऀͷೝ஌όΠΞεʹண໨ͨ͠ϨϏϡʔख๏ͷఏ ҊʯSQiPݚڀձɽ2017

  32. ࠷ޙʹCMͰ͢ɿ ࠾༻ͯ͠·͢ʂ • HERP Culture Deck: https://culture.herp.co.jp/ • ΤϯδχΞ޲͚࠾༻ࢿྉ: https://github.com/herp-inc/engineering-careers

    • ΤϯδχΞܥ৬छ࠾༻ϖʔδ: https://herp.careers/v1/herpinc/requisition- groups/84aec4e1-19c7-4268-b62a-027470d1ebd9