Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
余裕を⽣み出すコードレビュー 2019.12.01 PHPカンファレンス 2019 コネヒト株式会社 @fortkle
Slide 2
Slide 2 text
⾃⼰紹介 • ⾼野 福晃 @fortkle • コネヒト株式会社 / Backend Engineer • PHP, Go, React, etc • 本を共著で書きました! • 『TECHNICAL MASTER はじめての PHPプロフェッショナル開発』
Slide 3
Slide 3 text
(宣伝)コネヒトについて ˞৷தʙࡀϲ݄ͷࢠڙΛ࣋ͭঁੑ ਓΛରͱͨ͠ௐࠪΑΓ ʮݱࡏ͍ͬͯΔΞϓϦ ৷ɾࢠҭͯܥ Λͯ͢ڭ͍͑ͯͩ͘͞ʯͰୈҐʢ݄࣮ࢪɺௐࠪڠྗɿΠϯςʔδʣɻ ママ向けNo.1(※)アプリ「ママリ」
Slide 4
Slide 4 text
(宣伝)コネヒトについて ママの3⼈に1⼈が利⽤中! ˞৷தʙࡀϲ݄ͷࢠڙΛ࣋ͭঁੑ ਓΛରͱͨ͠ௐࠪΑΓ ʮݱࡏ͍ͬͯΔΞϓϦ ৷ɾࢠҭͯܥ Λͯ͢ڭ͍͑ͯͩ͘͞ʯͰୈҐʢ݄࣮ࢪɺௐࠪڠྗɿΠϯςʔδʣɻ
Slide 5
Slide 5 text
(宣伝)コネヒトについて 創業時からPHPをメイン⾔語で利⽤中! ˞৷தʙࡀϲ݄ͷࢠڙΛ࣋ͭঁੑ ਓΛରͱͨ͠ௐࠪΑΓ ʮݱࡏ͍ͬͯΔΞϓϦ ৷ɾࢠҭͯܥ Λͯ͢ڭ͍͑ͯͩ͘͞ʯͰୈҐʢ݄࣮ࢪɺௐࠪڠྗɿΠϯςʔδʣɻ
Slide 6
Slide 6 text
(宣伝)コネヒトについて 創業時からPHPをメイン⾔語で利⽤中! ˞৷தʙࡀϲ݄ͷࢠڙΛ࣋ͭঁੑ ਓΛରͱͨ͠ௐࠪΑΓ ʮݱࡏ͍ͬͯΔΞϓϦ ৷ɾࢠҭͯܥ Λͯ͢ڭ͍͑ͯͩ͘͞ʯͰୈҐʢ݄࣮ࢪɺௐࠪڠྗɿΠϯςʔδʣɻ 2016年から継続して PHPカンファレンスに協賛 させていただいています
Slide 7
Slide 7 text
今⽇のテーマ 「コードレビュー」
Slide 8
Slide 8 text
• GitHubのPull Requestを使ったコードレビュー • 必ずコードレビューを通過したコードのみが masterブランチにマージされる 弊社の場合 開発者(レビュイー) レビュワー 設計・実装 コードレビュー デプロイ
Slide 9
Slide 9 text
よくある課題の1つ レビュー待ちPRが溜まる
Slide 10
Slide 10 text
レビューコストは低くない 開発者(レビュイー) レビュワー 設計・実装 コードレビュー デプロイ レビュワーの偏り∕確認不⾜による⼿戻りの発⽣ ∕頻繁なコンテキストスイッチ
Slide 11
Slide 11 text
レビューコストを下げるには どうすればよいか?
Slide 12
Slide 12 text
例えば… • 機械にできることは機械に任せる • Linter や 静的解析の導⼊ • レビュー⾃動化のSaasを⼊れる • ペアプロ / モブプロ • etc
Slide 13
Slide 13 text
ですが、もっと簡単なことで
Slide 14
Slide 14 text
当たり前だけど 意外とできていないことで
Slide 15
Slide 15 text
コードレビューに “余裕”を⽣み出せる
Slide 16
Slide 16 text
やること レビュワー の 3つの「分からない」を減らす
Slide 17
Slide 17 text
鍵になるのは レビュイー のひと⼿間
Slide 18
Slide 18 text
レビュワー の3つの「分からない」 • 変更の意図・背景が分からない • 変更内容が分からない • 何に注⽬すればいいか分からない
Slide 19
Slide 19 text
• 変更の意図・背景が分からない • 変更内容が分からない • 何に注⽬すればいいか分からない レビュワー の3つの「分からない」
Slide 20
Slide 20 text
例1
Slide 21
Slide 21 text
例1 このDescription を読んだだけでは 「変更の意図や背景」 が分からない
Slide 22
Slide 22 text
改善例
Slide 23
Slide 23 text
改善例
Slide 24
Slide 24 text
改善例 背景を簡潔に説明 設計の意図や 参考にした リンクなどを 記載
Slide 25
Slide 25 text
• 変更の意図・背景が分からない • 変更内容が分からない • 何に注⽬すればいいか分からない レビュワー の3つの「分からない」
Slide 26
Slide 26 text
例2
Slide 27
Slide 27 text
例2 over 1200⾏の ⼤きすぎるdiff 意味のある単位で分割されていないコミット
Slide 28
Slide 28 text
改善例
Slide 29
Slide 29 text
改善例 1つのPRでは 1つのことをやる 実際の実⾏コマンドをメッセージ等に書くと親切 意味のある単位でコミットを分割 500⾏を ⽬安に分割 (Dangerなどで警告)
Slide 30
Slide 30 text
• 変更の意図・背景が分からない • 変更内容が分からない • 何に注⽬すればいいか分からない レビュワー の3つの「分からない」
Slide 31
Slide 31 text
例3
Slide 32
Slide 32 text
例3 どうやって確認すればいいのか、 何に注⽬すればいいのか 分からない
Slide 33
Slide 33 text
改善例 確認してほしいことを書いておく (チェックボックスなどでリスト化すると効果的)
Slide 34
Slide 34 text
改善例 もちろん ⾃動テストも書こう!
Slide 35
Slide 35 text
改善例 インラインコメントで不安な点を伝える
Slide 36
Slide 36 text
まとめ
Slide 37
Slide 37 text
まとめ • レビュイーのひと⼿間でレビューコストは下がる • 特別なスキルやツールは必要ない • 余裕を⽣み出して、よりよいプロダクトを作って いきましょう! ”Twemoji" by Twitter, Inc and other contributors is licensed under CC-BY 4.0