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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Daichi Koike
March 29, 2024
Technology
0
170
俺たちはなぜコードレビューをするのか
Daichi Koike
March 29, 2024
Tweet
Share
More Decks by Daichi Koike
See All by Daichi Koike
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
daichike
0
29
カヤックの組織課題を解決する人事データベースシステム
daichike
0
22
DP4版と侮るなかれ!現時点でもN1QLは実用に耐えうる/Couchbase Live Tokyo 2015
daichike
0
13
Couchbase Serverのサーバ移管と2.1から3.0.1へのバージョンアップ
daichike
0
12
Couchbase Serverを用いた大規模データ収集基盤/db tech showcase 東京 2014
daichike
0
19
Other Decks in Technology
See All in Technology
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
770
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
270
コンテナセキュリティの最新事情 ~ 2026年版 ~
kyohmizu
6
1.8k
Webhook best practices for rock solid and resilient deployments
glaforge
2
310
SchooでVue.js/Nuxtを技術選定している理由
yamanoku
3
210
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
93k
Exadata Fleet Update
oracle4engineer
PRO
0
1.1k
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
2
3.2k
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
100
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
190
【Ubie】AIを活用した広告アセット「爆速」生成事例 | AI_Ops_Community_Vol.2
yoshiki_0316
1
120
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
610
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
2.3M
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
170
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Building Adaptive Systems
keathley
44
2.9k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
94
Mind Mapping
helmedeiros
PRO
0
90
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
460
Un-Boring Meetings
codingconduct
0
200
Marketing to machines
jonoalderson
1
4.6k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
エンジニアに許された特別な時間の終わり
watany
106
230k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
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/
ありがとうございました