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
Daichi Koike
March 29, 2024
Technology
0
130
俺たちはなぜコードレビューをするのか
Daichi Koike
March 29, 2024
Tweet
Share
More Decks by Daichi Koike
See All by Daichi Koike
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
daichike
0
25
カヤックの組織課題を解決する人事データベースシステム
daichike
0
20
DP4版と侮るなかれ!現時点でもN1QLは実用に耐えうる/Couchbase Live Tokyo 2015
daichike
0
12
Couchbase Serverのサーバ移管と2.1から3.0.1へのバージョンアップ
daichike
0
10
Couchbase Serverを用いた大規模データ収集基盤/db tech showcase 東京 2014
daichike
0
15
Other Decks in Technology
See All in Technology
Cloud Native Scalability for Internal Developer Platforms
hhiroshell
2
430
SFTPコンテナからファイルをダウンロードする
dip
0
120
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
42
24k
2025/6/21 日本学術会議公開シンポジウム発表資料
keisuke198619
0
110
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
7.2k
New Cache Hierarchy for Container Images and OCI Artifacts in Kubernetes Clusters using Containerd / KubeCon + CloudNativeCon Japan
pfn
PRO
0
150
技術職じゃない私がVibe Codingで感じた、AGIが身近になる未来
blueb
0
120
Create a Rails8 responsive app with Gemini and RubyLLM
palladius
0
110
AIエージェントの継続的改善のためオブザーバビリティ
pharma_x_tech
6
1.1k
IAMのマニアックな話 2025を執筆して、 見えてきたAWSアカウント管理の現在
nrinetcom
PRO
3
530
データ戦略部門 紹介資料
sansan33
PRO
1
3.2k
AI技術トレンド勉強会 #1MCPの基礎と実務での応用
nisei_k
1
170
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Facilitating Awesome Meetings
lara
54
6.4k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Producing Creativity
orderedlist
PRO
346
40k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
180
53k
It's Worth the Effort
3n
184
28k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Transcript
俺たちはなぜコード レビューをするのか 2024-03-29 小池 大地 【KURAND社 協賛】仕事とお酒を愛でる「ソース コード」レビューまつり!
こんにちは - 小池 大地 - 面白法人カヤック 人事/サーバサイドエンジニア Go で Web
app を書いたり Terraform で AWS のインフラ構築したり - 好きなお酒 麦焼酎
レビューしてますか?
https://chat.openai.com/share/f1758a92-6088-48a2-bf4a-42c359b42fc5 コードレビューの目的(GPT-4)
コードレビュー(英: code review)は、ソフトウェア開発工程で見過ごされた 誤りを検出・修正することを目的としてソースコードの体系的な検査(査読)を 行う作業のこと。 https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%BC%E3%83%89%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC コードレビューの目的(Wikipedia)
まあわかる でもレビューじゃなくても 良いものもない?
- レビュアーがどれだけ真剣にレビューしても全部のバグを発見はできない - 実装が妥当かどうかはユースケース(どのように使われるか)によって決定さ れるので、コードだけ見ても分からない場合が多い 例: 名前を入力するフォームのバリデーション ひらがな/カタカナ - 実装者もレビュアーも全員ドメイン知識に精通しているとは限らない
- Pull Request マージ後の E2E の動作確認や QA でもバグを検出することが できる 品質(バグ)
学習と成長 - モブプロやペアプロといった手段がある - レビューは成果物に対して行うので思考や実装の過程は分からないが、モブ プロやペアプロであればこの過程を体験できる。特に初学者のメンバーに対 してはこちらのほうが良いと感じる - ちょっとしたリファクタリングや管理画面の改修などをお題にして行うと ちょうどよい。終了後はそのままマージすることも可能
レビューの目的とされてい るものは代替手段があるこ とが多い
ではなぜレビューするのか
https://chat.openai.com/share/f1758a92-6088-48a2-bf4a-42c359b42fc5 コードレビューの目的(GPT-4)
保守するから
- 実装者以外のチームメンバーがそのコードをメンテナンスできることを合意 するため - 2~3年も運用すればビジネスの要求が変化していき、初期のアーキテクチャ や機能では想定していない改修が発生する - ビジネスの要求と、ビジネスを継続していく中で変化していく要求にアプリ ケーションが応えられなければならない。この状態を維持することが人間に よるレビューの目的
なぜレビューするのか
- 設計 - アーキテクチャ、モジュール、レイヤ、関数など - 設計を誤ると後続の実装がすべてつらくなる - 良い設計になっていれば実装が誤っていても後から修正しやすいし、要求の 変化にも対応しやすい -
設計を終えたビルドや CI が通らない状態で一旦レビューをすることもあ る。実装まで終えた状態だと設計に見直しが入った場合に大きな手戻りが発 生し逆に工数がかさむことがある。大きな実装の際に有効 何をレビューするのか
保守しない前提ならレ ビューは必ずしも必要では ないのでは?
- 短期のキャンペーンサイトの開発など、保守運用を前提としていない開発 - もちろんレビューできるならレビューしたほうがいいが工数は無限にあるわ けではない。感覚的には実装工数が2時間ぐらいのものは30分近くレビュー に必要。負担になるとレビューが雑になり、レビューすることが目的となり がち - シンプルなエンティティの CRUD
操作のような振る舞いが明確で後の工程で 不具合として検出しやすいもの - 管理画面など、システムの信頼性の低下をある程度許容できるもの レビューを省略できる可能性があるもの
レビューしてますか?
- バグになりうるコードを検出する linter - go vet と staticcheck https://staticcheck.dev/ -
linter と統合して動き自動レビューをする reviewdog 🐶 https://github.com/reviewdog/reviewdog - credentials のリポジトリへのコミットを防ぐ git-secrets https://github.com/awslabs/git-secrets ツール
酒とゲームとインフラとGCP 『ゲームインフラ』をキーワードに お酒を飲みながら Google の技術を楽しむ 次回 7/5 (金) SQUARE ENIXさん会場
https://sake-game.connpass.com/event/312225/
ありがとうございました