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
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
18
Other Decks in Technology
See All in Technology
モノタロウ x クリエーションラインで実現する チームトポロジーにおける プラットフォームチーム・ ストリームアラインドチームの 効果的なコラボレーション
creationline
0
540
Master Dataグループ紹介資料
sansan33
PRO
1
4.2k
あの夜、私たちは「人間」に戻った。 ── 災害ユートピア、贈与、そしてアジャイルの再構築 / 20260108 Hiromitsu Akiba
shift_evolve
PRO
0
480
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
840
AI時代のアジャイルチームを目指して ー スクラムというコンフォートゾーンからの脱却 ー / Toward Agile Teams in the Age of AI
takaking22
11
5.2k
人工知能のための哲学塾 ニューロフィロソフィ篇 第零夜 「ニューロフィロソフィとは何か?」
miyayou
0
380
国井さんにPurview の話を聞く会
sophiakunii
1
340
re:Invent2025 セッションレポ ~Spec-driven development with Kiro~
nrinetcom
PRO
2
170
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
19k
Java 25に至る道
skrb
3
170
『君の名は』と聞く君の名は。 / Your name, you who asks for mine.
nttcom
1
150
スクラムマスターが スクラムチームに入って取り組む5つのこと - スクラムガイドには書いてないけど入った当初から取り組んでおきたい大切なこと -
scrummasudar
1
1.7k
Featured
See All Featured
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
110
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
[SF Ruby Conf 2025] Rails X
palkan
0
680
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
A Soul's Torment
seathinner
2
2.1k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Statistics for Hackers
jakevdp
799
230k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
A Tale of Four Properties
chriscoyier
162
23k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
42
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/
ありがとうございました