Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
こんなコードレビューは嫌だ
akkie76
October 11, 2022
Technology
0
420
こんなコードレビューは嫌だ
akkie76
October 11, 2022
Tweet
Share
More Decks by akkie76
See All by akkie76
Crashlytics と Android の連携で トラブルシューティングを効率化する
akkie76
0
140
アプリアーキテクチャを明文化しチームの開発効率をアップ
akkie76
1
420
アプリアーキテクチャを明文化しチームの開発効率をアップ
akkie76
1
870
チームの設計力を高めるためのTIPS
akkie76
0
510
明日からできるコードレビューの心構え
akkie76
0
300
これで失敗しない! JUnit 5 へのマイグレーション方法
akkie76
0
220
オブジェクト指向で類型化するコードレビュー
akkie76
0
230
アーキテクチャを明文化して開発に臨んだ話
akkie76
0
530
レビューガイドラインで技術力を見える化する
akkie76
0
710
Other Decks in Technology
See All in Technology
MoT/コネヒト/Kanmu が語るプロダクト開発xデータ分析 - 分析から機械学習システムの開発まで一人で複数ロールを担う大変さ
masatakashiwagi
2
530
Dev Containers ことはじめ - 失敗から学ぶ開発環境運用法
streamwest1629
0
250
小さなお葬式をAWSに移行したお話
moriryouta
2
150
データベースの発表には RDBMS 以外もありますよ
maroon1st
0
220
The Stable Team - 機能する安定したチームをつくる - / The Stable Team
takaking22
14
7.5k
OCIコンテナサービス関連の技術詳細 /oke-ocir-details
oracle4engineer
PRO
0
740
Exploring MapStore Release 2022.02: improved 3DTiles support and more
simboss
PRO
0
160
聴覚障害のある大学生チームによる臆さない発言環境の形成
hayato_ukuk
0
1.7k
エアドロップ for オープンソースプロジェクト
epicsdao
0
120
1つのアプリを開発する複数の職能横断チームの運用と今後 ~ タクシーアプリ「GO」の現状と未来 ~
takahia1988
1
3.3k
LINEにおけるネットワーク自動化チーム / Network Automation Team in LINE
line_developers
PRO
0
220
1日5分!子育て中もインプットを続ける工夫
morihirok
1
350
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
32
6.7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
152
13k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
10
1.3k
jQuery: Nuts, Bolts and Bling
dougneiner
57
6.6k
Debugging Ruby Performance
tmm1
67
11k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
270
12k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
101
6.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
31
20k
Art, The Web, and Tiny UX
lynnandtonic
284
18k
A Tale of Four Properties
chriscoyier
149
21k
Creatively Recalculating Your Daily Design Routine
revolveconf
207
11k
Building Applications with DynamoDB
mza
85
4.9k
Transcript
〜 生産性を高めるコードレビューのTIPS 〜 こんなコードレビューは嫌だ @akkiee76
自己紹介 Akihiko Sato / 株式会社ラクス Lead Engineer / @akkiee76 SaaS
開発 (Backend, Frontend) / Mobile 開発 (iOS, Android) 上流工程、コードレビュー、チームの課題改善など 読書 / コーヒー / HHKB / 体幹トレーニング
コードレビュー技術について ・オブジェクト指向で類型化するコードレビュー ・レビューガイドラインで技術力を見える化する ・コードレビューの心構え
今日伝えたいこと 「嫌なPR/MR」を避けることで コードレビューの生産性と品質を高めよう!
こんなコードレビューは嫌だ ① changes / diff が多すぎる
レビューで困ること ・考慮漏れが発生するリスクが比例する(品質への懸念) ・レビューに時間がかかる ・手戻りのリスク(修正時のコストが大きい)
原因考察 ・実装スコープが大きい ・不要なファイルがコミットされている(node_moduleなど)
アクションプラン ・実装スコープを細かく分けて、changes を少なくする ・一部の条件分岐のロジックのスコープを分ける ・横展開系開発は、基本方針と横展開を分ける ・ライブラリのアップデートは機能ごとに分ける
こんなコードレビューは嫌だ ② overview の情報が少ない 実装方針が分からない
レビューで困ること ・レビューに時間がかかる ・実装者との意思疎通・コード解釈 ・手戻りのリスク(実装方針の認識相違)
原因考察 ・レビュワーへの配慮 ・設計の認識合わせ不足
アクションプラン ・overview に実装方針を記載する ・必要に応じて実装の背景をコメントで残す ・「FYI 」などのコメント略語を利用する
こんなコードレビューは嫌だ ③ コミットコメントと内容が一致しない
こんなコードレビューは嫌だ ③(実例) ・実装5 ・実装4 ・実装3 ・実装2 ・実装1 commit の粒度が 分からない・・・
レビューで困ること ・全部の chages / diff でレビューを行うことになる ・レビューに時間がかかる ・考慮漏れのリスク(場合によって)
原因考察 ・実装プロセスが明確になっていない(惰性で実装) ・設計の認識合わせ不足
アクションプラン ・commitコメントと内容をなるべく一致させる ・実装プロセスと内容を確立させる(頑張り過ぎない)
こんなコードレビューは嫌だ ④ リファクタリングが含まれている
レビューで困ること ・問題が発生した場合、問題箇所を特定しにくい(品質) ・軽微な修正は許容 ・chages / diff が多くなりがち ・レビューに時間がかかる
原因考察 ・実装プロセスが明確になっていない ・影響範囲の調査不足
アクションプラン ・影響範囲は事前に調査する ・リファクタリングはスコープを分ける ・可能であれば事前にリファクタリングできると GOOD !
こんなコードレビューは嫌だ ⑤ ライブラリのアップデートが含まれている
レビューで困ること ・問題が発生した場合、問題箇所を特定しにくい(品質) ・依存関係により影響範囲が大きくなるケースがある
原因考察 ・影響範囲が少なそうなので、ついでにアップデートした ・IDEで良しなにアップデートされていた ・diff を確認で漏れてしまった
アクションプラン ・ライブラリのアップデートのみをスコープにする ・影響範囲に関わらず機能チェックするとよい ・バージョン開発早期にやると GOOD !
こんなコードレビューは嫌だ5選 ・changes / diff が多すぎる ・overview の情報が少ない ・コミットコメントと内容が一致しない ・リファクタリングが含まれている ・ライブラリのアップデートが含まれている
まとめ 開発を進める上で大切なこと ・PRのスコープを大きくしない ・実装者とレビュアーのコミュニケーションを大切にする ・diff を確認する 明日からのコードレビューでぜひ実践してみよう!
ご清聴ありがとうございました