Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
チームの開発生産性を高める!AI時代のコードレビュー
Search
emi084
December 04, 2025
Technology
1
57
チームの開発生産性を高める!AI時代のコードレビュー
emi084
December 04, 2025
Tweet
Share
Other Decks in Technology
See All in Technology
ChatGPTで論⽂は読めるのか
spatial_ai_network
3
12k
ガバメントクラウド利用システムのライフサイクルについて
techniczna
0
190
非CUDAの悲哀 〜Claude Code と挑んだ image to 3D “Hunyuan3D”を EVO-X2(Ryzen AI Max+395)で動作させるチャレンジ〜
hawkymisc
1
170
AWS CLIの新しい認証情報設定方法aws loginコマンドの実態
wkm2
6
700
計算機科学をRubyと歩む 〜DFA型正規表現エンジンをつくる~
ydah
3
230
チーリンについて
hirotomotaguchi
6
1.8k
ブロックテーマとこれからの WordPress サイト制作 / Toyama WordPress Meetup Vol.81
torounit
0
550
re:Invent 2025 ふりかえり 生成AI版
takaakikakei
1
190
生成AIでテスト設計はどこまでできる? 「テスト粒度」を操るテーラリング術
shota_kusaba
0
670
re:Invent 2025 ~何をする者であり、どこへいくのか~
tetutetu214
0
210
評価駆動開発で不確実性を制御する - MLflow 3が支えるエージェント開発
databricksjapan
1
120
RAG/Agent開発のアップデートまとめ
taka0709
0
160
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
0
510
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Writing Fast Ruby
sferik
630
62k
BBQ
matthewcrist
89
9.9k
Producing Creativity
orderedlist
PRO
348
40k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Speed Design
sergeychernyshev
33
1.4k
Making Projects Easy
brettharned
120
6.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Transcript
AI時代のコードレビュー 今、人が担うべき役割は? 2025/12/04 emi084 ©GLOBIS. ALL Rights Reserved.
氏名:emi084 所属:株式会社グロービス(14年目) 約10年間、社内SEとして業務シス テムの開発・運用に携わる 2022年、バックエンドエンジニア へ転向し、 『GLOBIS 学び放題』等 のサービス開発に従事 最近は生成AIを活用した社内オペレ
ーションの効率化にも取り組んでい る 自己紹介 ©GLOBIS. ALL Rights Reserved. 2│
AIコードレビューを活用するために、 人が担うべき役割を考える 以下の方向けにお話します。 これからAIレビュワーを導入しようと考えている方 導入したが「欲しいレビューが来ない」と感じている方 どこまでAIレビュワーを頼れるのか分からないと思っている方 今日のテーマ ©GLOBIS. ALL Rights
Reserved. 3│
1. AIレビュワーに振り回されない 2. 足りないコンテキストを補うレビューをする 3. AIを育てる AIコードレビューを活用するためにやるべきこと ©GLOBIS. ALL Rights
Reserved. 4│
1. AIレビュワーに振り回されない ©GLOBIS. ALL Rights Reserved. 5│
私やチームメンバーが実際に振り回された例を三つご紹 介します! AIレビュワーに振り回された事例 ©GLOBIS. ALL Rights Reserved. 6│
AIレビュワー「この命名は〇〇が良いです」 開発者「確かに!…(修正) 」 AIレビュワー「〇〇はよくありません。△△が良いです」 開発者「え?そうなの?最初からそう言ってよ…(修正) 」 AIレビュワー「〇〇にすることを提案します」 開発者「 」 例1:AIレビュワーの無邪気さに翻弄される
AIは無邪気なので、人間と同じ感覚で付き合うと翻弄されてしまう » AIには「一貫性がない」前提で向き合う » ©GLOBIS. ALL Rights Reserved. 7│
AIレビュワー「Modelクラスに役割を持たせすぎている、単一責任の原則に基づ き役割ごとに独立した小さなクラスに分割するべき」 開発者「確かに分かりやすい!その手があったのか!」 他のチームメンバー「チームの開発方針(Fat Model)と異なるため、局所的な 分割は逆に可読性を下げる。今は機能追加を優先するフェーズなので、大規模なリ ファクタリングは避けるべき」 例2:AIレビュワーを盲信する AIは一般的に正しいことを言うが、チームにとって正しいとは限らない »
「今やるべきか?」の判断は人間にしかできない » ©GLOBIS. ALL Rights Reserved. 8│
AIレビュワー「コントロール層にバリデーションが実装されているが、モデル層 にも実装すべき」 開発者「了解!…(修正) 」 レビュワー「2重にバリデーションを実行しているのはなぜでしょうか?」 開発者「AIに指摘されたので」 レビュワー「 」 ※ 2重バリデーションの是非はケースによります
例3:AIレビュワーに判断を委ねる AIはあくまでもアドバイザー、判断をすべきなのは人間 » 責任は全て人間が持つ » ©GLOBIS. ALL Rights Reserved. 9│
AIには一貫性がない AIは知らないこと(コンテキストが足りないこと)は指摘できない AIはあくまでもアドバイスをするだけのポジション 最終的な判断は人間の責務であることを忘れない 「AIレビュワーに振り回されない」のまとめ AIの特性を知る » オーナーシップを手放さない » ©GLOBIS.
ALL Rights Reserved. 10│
2. 足りないコンテキストを補うレビューをする ©GLOBIS. ALL Rights Reserved. 11│
AIが指摘できず、人間が指摘した事例を4つご紹介します AIが指摘できなかった事例 ©GLOBIS. ALL Rights Reserved. 12│
def some_method(user:) if user.is_active?がtrueの場合 処理A else 処理B end end 指摘:
user (インスタンス全体)だと主語がデカすぎて、どのような用途で渡しているのか が見えづらいので、 user.is_active? (Boolean値)を渡す形で良い気がしました ー。 例1:可読性・意図の明確さ ©GLOBIS. ALL Rights Reserved. 13│
画面の実装結果: 指摘: 利用規約の横にある別タブアイコンの色が不自然な青になってしまっているので、そ の部分だけ修正していただけると助かります…! 例2:UI/UX関連 ©GLOBIS. ALL Rights Reserved. 14│
仕様: 「欠席が3回以上」 or 「課題未提出」 → テスト受験不可 if 欠席が3回以上 "受験できません(欠席が多いため)" elsif
課題未提出 "受験できません(課題未提出のため)" else "受験可能です" end 指摘: 欠席が3回以上かつ課題未提出の場合、どちらのメッセージが表示されますか?両方該 当するケースが考慮されていないのでは? 例3:仕様の考慮不足 ©GLOBIS. ALL Rights Reserved. 15│
仕様: ユーザーが購入したことのある商品のジャンルを検索したいケース select * from ユーザー join 購入履歴 on ...
join 商品ジャンルマスター on ... 指摘: 現状、一部経路からの購入では「購入履歴」テーブルに保存されないケースがありま す。 「申込履歴」テーブル経由で取得した方が良いかなって思いました。 例4:複雑な仕様・歴史的経緯に絡むこと ©GLOBIS. ALL Rights Reserved. 16│
可読性・意図の明確さ UI/UX関連 仕様の考慮不足 複雑な仕様・歴史的経緯に絡むこと ここまでの事例を見て、 「コンテキストさえあれば、AIも人間と同等のレビューができるのでは?」 と思いませんでしたか? 「足りないコンテキストを補うレビューをする」のまとめ 人間が補うべきコンテキストの一例 »
©GLOBIS. ALL Rights Reserved. 17│
3. AIを育てる ©GLOBIS. ALL Rights Reserved. 18│
方法 1. プロンプトで教える 2. コメントで教える 3. ナレッジで教える 4. 役割を分担する AIを育てるとは?
AIを育てる = 足りないコンテキストをAIに教えること » ©GLOBIS. ALL Rights Reserved. 19│
例)AIレビュワーへの指示に「チームの方針」を追加する AIレビュワー「Modelクラスに役割を持たせすぎている、単一責任の原則に基づ き役割ごとに独立した小さなクラスに分割するべき」 指示の追加 - ファットモデルは許容される - 多くの責任を持つ大きなモデルは問題ではありません - ロジックをサービス層に抽出するよりも、ファットモデルが推奨されます
- モデルが「大きすぎる」または「責任が多すぎる」とは指摘しないでください - 複雑なモデルは、サービスに分割するのではなく、concernsを使って整理すべきです 方法1:プロンプトで教える ©GLOBIS. ALL Rights Reserved. 20│
「人間が読んでわからないコード」は「AIが読んでもわからない」 コメントこそが、コードに最も近い最強のコンテキストになる。 例) # 〇〇経路の購入は記録されません。すべての購入履歴を取得したい場合は「申込履歴」を参照してください。 class 購入履歴 ... end #
pending が組織から削除された状態を意味する next unless admin_affiliation.state == 'pending' ※ 本来はリファクタリングすべきですが、現実は即対応できないことも多いですよね…! 方法2:コメントで教える ©GLOBIS. ALL Rights Reserved. 21│
例) Flaky Testに関するナレッジ 過去に起きたFlakyのパターンを集約し、テストコードのレビュー時に参照さ せる リポジトリ外に関するナレッジ 「ここを直したら〇〇チームへの連携」 「このテーブル変更は、△△リポジトリにも影響する」 方法3:ナレッジで教える 「過去の失敗」や「やるべきこと」をナレッジとして教える。
» ©GLOBIS. ALL Rights Reserved. 22│
コンテキストを与えすぎるとトークン不足や混乱が起きるため、役割ごとにエージェ ントを分割する必要がある 汎用レビュワー 一般的なバグの検知 チーム推奨ルールの適用 Flaky Testレビュワー Flaky Testの予兆を防ぐ Migrationレビュワー
DBロックやダウンタイムのリスク検知 他チームへの連携要請 方法4:役割を分担する AIにも「単一責任の原則」を適用する » ©GLOBIS. ALL Rights Reserved. 23│
AIを育てるためには、とにかくコンテキストを伝える必要がある 簡単そう?大変そう?どのように感じていますか? 私たちは Try & Errorを繰り返しながら、徐々にAIがレビューできる領域を広げています AIのために言語化するプロセスは、結果として『暗黙知』を整理しチームの資産 を作っています 今後も、改善と進化をさせていきます! 「AIを育てる」のまとめ
©GLOBIS. ALL Rights Reserved. 24│
1. AIレビュワーに振り回されない 2. 足りないコンテキストを補うレビューをする 3. AIを育てる おさらい:AIコードレビューを活用するためにやるべきこと ©GLOBIS. ALL Rights
Reserved. 25│
アドベントカレンダー AIを育てる方法が弊社アドベントカレンダーで続々と紹介されているのでぜひご覧く ださい! https://qiita.com/advent-calendar/2025/globis GLOBIS Advent Calendar 2025 » ©GLOBIS.
ALL Rights Reserved. 26│
ご清聴ありがとうございました! ©GLOBIS. ALL Rights Reserved. 27│