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
こんなコードレビューは嫌だ
Search
akkie76
October 11, 2022
Technology
0
570
こんなコードレビューは嫌だ
akkie76
October 11, 2022
Tweet
Share
More Decks by akkie76
See All by akkie76
コードレビューを支援するAI技術の応用
akkie76
2
76
オブジェクト指向コードレビューの新しいアプローチ
akkie76
3
1.5k
Jetpack Compose で Adaptive Layout に対応しよう
akkie76
0
65
Observationではじめる値監視
akkie76
3
1k
TextField 表示スタイル変更の 有効活用例 5 選
akkie76
0
270
rememberUpdatedState の使いどころを考える
akkie76
0
170
M3 NavigationBar をマスターする
akkie76
0
430
アーキテクチャを明文化して臨んだ新規アプリ開発戦略
akkie76
0
130
プライバシー強化の最前線 ~2024年春以降の展望と対策~
akkie76
0
140
Other Decks in Technology
See All in Technology
KubeCon EU 2024 : Knative Maintainers Session
salaboy
0
370
バッチ処理のSLOをどう設計するか
rynsuke
7
560
LLM + RAG を使った SORACOM Support Bot の裏側の歴史
soracom
PRO
1
640
GitHub最新情報キャッチアップ 2024年3月
dzeyelid
16
3.2k
どう買う?Azure
kuniteru
1
190
Azureコストは水道代/The_47th_Tokyo_Jazug
aeonpeople
3
360
MongoDB Atlas Vectorsearchではじめる生成AIアプリ開発
chie8842
3
510
実務への応用例から考える 変更に強いオブジェクト指向設計 / 20240324-ooc2024
bengo4com
7
5.3k
20240321_生成AI時代のDevOps
kzkmaeda
2
610
大規模なアジャイル開発の現場と技術負債 / Technical Debt
yoshiitaka
20
4k
これまでのキャリアとこれからMLエンジニアとしてどう動くか
masatakashiwagi
0
350
エバンジェリスト活動を7年やってきて見えてきた、コミュニティとエバンジェリストの関係
soracom
PRO
1
200
Featured
See All Featured
Atom: Resistance is Futile
akmur
258
25k
We Have a Design System, Now What?
morganepeng
42
6.7k
Faster Mobile Websites
deanohume
296
30k
Designing on Purpose - Digital PM Summit 2013
jponch
109
6.4k
Building Effective Engineering Teams - LeadDev
addyosmani
25
1.8k
Agile that works and the tools we love
rasmusluckow
323
20k
Side Projects
sachag
451
41k
Product Roadmaps are Hard
iamctodd
43
9.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
19
1.9k
What's new in Ruby 2.0
geeforr
335
31k
How To Stay Up To Date on Web Technology
chriscoyier
781
250k
RailsConf 2023
tenderlove
0
510
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 を確認する 明日からのコードレビューでぜひ実践してみよう!
ご清聴ありがとうございました