Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
余裕を生み出すコードレビュー 〜レビュイー編〜 / code-review-phpcon-2019
Search
fortkle
December 01, 2019
Technology
8
6.9k
余裕を生み出すコードレビュー 〜レビュイー編〜 / code-review-phpcon-2019
PHPカンファレンス2019 LT
ブログ記事もあわせてお読みください!
https://tech.connehito.com/entry/heartful-code-review
fortkle
December 01, 2019
Tweet
Share
More Decks by fortkle
See All by fortkle
無駄な物をなるべく作らないリプレイス戦略 / replace-strategy-phperkaigi2021
fortkle
1
2.1k
フルリモート時代のカンバン運用 / kanban-operation-in-remote
fortkle
0
630
GitHub Actionsで始めるPHPアプリケーションのCI実践入門 / ga-phperkaigi2020
fortkle
3
4.2k
「設計振り返り」を始めてみようと思っている話 / architecture reflection
fortkle
3
530
「ママ向けNo.1アプリ」の 更なる成長を支える仕組み / startup-engineer-night-connehito
fortkle
2
280
良いテストデータ、悪いテストデータ / testdata-antipattern
fortkle
4
6.7k
BackstopJSで始める CSSリグレッションテスト / backstopjs-css-test
fortkle
0
1.5k
PhpStorm導入アンチパターン / phpstorm-anti-pattern
fortkle
0
2k
やさしいコーディング規約の導入〜その後〜 / yasashii-sonogo
fortkle
7
3.5k
Other Decks in Technology
See All in Technology
DevFest 2024 Incheon / Songdo - Compose UI 조합 심화
wisemuji
0
110
KubeCon NA 2024 Recap / Running WebAssembly (Wasm) Workloads Side-by-Side with Container Workloads
z63d
1
250
UI State設計とテスト方針
rmakiyama
2
600
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
580
生成AIのガバナンスの全体像と現実解
fnifni
1
190
C++26 エラー性動作
faithandbrave
2
750
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
130
ブラックフライデーで購入したPixel9で、Gemini Nanoを動かしてみた
marchin1989
1
540
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
17
4.5k
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
120
podman_update_2024-12
orimanabu
1
280
Wantedly での Datadog 活用事例
bgpat
1
500
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
Building Your Own Lightsaber
phodgson
103
6.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
It's Worth the Effort
3n
183
28k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
How to Ace a Technical Interview
jacobian
276
23k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Unsuck your backbone
ammeep
669
57k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
What's in a price? How to price your products and services
michaelherold
243
12k
Transcript
余裕を⽣み出すコードレビュー 2019.12.01 PHPカンファレンス 2019 コネヒト株式会社 @fortkle
⾃⼰紹介 • ⾼野 福晃 @fortkle • コネヒト株式会社 / Backend Engineer
• PHP, Go, React, etc • 本を共著で書きました! • 『TECHNICAL MASTER はじめての PHPプロフェッショナル開発』
(宣伝)コネヒトについて ˞৷தʙࡀϲ݄ͷࢠڙΛ࣋ͭঁੑ ਓΛରͱͨ͠ௐࠪΑΓ ʮݱࡏ͍ͬͯΔΞϓϦ ৷ɾࢠҭͯܥ Λͯ͢ڭ͍͑ͯͩ͘͞ʯͰୈҐʢ݄࣮ࢪɺௐࠪڠྗɿΠϯςʔδʣɻ ママ向けNo.1(※)アプリ「ママリ」
(宣伝)コネヒトについて ママの3⼈に1⼈が利⽤中! ˞৷தʙࡀϲ݄ͷࢠڙΛ࣋ͭঁੑ ਓΛରͱͨ͠ௐࠪΑΓ ʮݱࡏ͍ͬͯΔΞϓϦ ৷ɾࢠҭͯܥ Λͯ͢ڭ͍͑ͯͩ͘͞ʯͰୈҐʢ݄࣮ࢪɺௐࠪڠྗɿΠϯςʔδʣɻ
(宣伝)コネヒトについて 創業時からPHPをメイン⾔語で利⽤中! ˞৷தʙࡀϲ݄ͷࢠڙΛ࣋ͭঁੑ ਓΛରͱͨ͠ௐࠪΑΓ ʮݱࡏ͍ͬͯΔΞϓϦ ৷ɾࢠҭͯܥ Λͯ͢ڭ͍͑ͯͩ͘͞ʯͰୈҐʢ݄࣮ࢪɺௐࠪڠྗɿΠϯςʔδʣɻ
(宣伝)コネヒトについて 創業時からPHPをメイン⾔語で利⽤中! ˞৷தʙࡀϲ݄ͷࢠڙΛ࣋ͭঁੑ ਓΛରͱͨ͠ௐࠪΑΓ ʮݱࡏ͍ͬͯΔΞϓϦ ৷ɾࢠҭͯܥ Λͯ͢ڭ͍͑ͯͩ͘͞ʯͰୈҐʢ݄࣮ࢪɺௐࠪڠྗɿΠϯςʔδʣɻ 2016年から継続して PHPカンファレンスに協賛 させていただいています
今⽇のテーマ 「コードレビュー」
• GitHubのPull Requestを使ったコードレビュー • 必ずコードレビューを通過したコードのみが masterブランチにマージされる 弊社の場合 開発者(レビュイー) レビュワー 設計・実装
コードレビュー デプロイ
よくある課題の1つ レビュー待ちPRが溜まる
レビューコストは低くない 開発者(レビュイー) レビュワー 設計・実装 コードレビュー デプロイ レビュワーの偏り∕確認不⾜による⼿戻りの発⽣ ∕頻繁なコンテキストスイッチ
レビューコストを下げるには どうすればよいか?
例えば… • 機械にできることは機械に任せる • Linter や 静的解析の導⼊ • レビュー⾃動化のSaasを⼊れる •
ペアプロ / モブプロ • etc
ですが、もっと簡単なことで
当たり前だけど 意外とできていないことで
コードレビューに “余裕”を⽣み出せる
やること レビュワー の 3つの「分からない」を減らす
鍵になるのは レビュイー のひと⼿間
レビュワー の3つの「分からない」 • 変更の意図・背景が分からない • 変更内容が分からない • 何に注⽬すればいいか分からない
• 変更の意図・背景が分からない • 変更内容が分からない • 何に注⽬すればいいか分からない レビュワー の3つの「分からない」
例1
例1 このDescription を読んだだけでは 「変更の意図や背景」 が分からない
改善例
改善例
改善例 背景を簡潔に説明 設計の意図や 参考にした リンクなどを 記載
• 変更の意図・背景が分からない • 変更内容が分からない • 何に注⽬すればいいか分からない レビュワー の3つの「分からない」
例2
例2 over 1200⾏の ⼤きすぎるdiff 意味のある単位で分割されていないコミット
改善例
改善例 1つのPRでは 1つのことをやる 実際の実⾏コマンドをメッセージ等に書くと親切 意味のある単位でコミットを分割 500⾏を ⽬安に分割 (Dangerなどで警告)
• 変更の意図・背景が分からない • 変更内容が分からない • 何に注⽬すればいいか分からない レビュワー の3つの「分からない」
例3
例3 どうやって確認すればいいのか、 何に注⽬すればいいのか 分からない
改善例 確認してほしいことを書いておく (チェックボックスなどでリスト化すると効果的)
改善例 もちろん ⾃動テストも書こう!
改善例 インラインコメントで不安な点を伝える
まとめ
まとめ • レビュイーのひと⼿間でレビューコストは下がる • 特別なスキルやツールは必要ない • 余裕を⽣み出して、よりよいプロダクトを作って いきましょう! ”Twemoji" by
Twitter, Inc and other contributors is licensed under CC-BY 4.0