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
生成AIを使ったコードレビューで定性的に品質カバー
Search
Chiaki Okamoto
February 01, 2026
Programming
420
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
生成AIを使ったコードレビューで定性的に品質カバー
2026/02/01にnishinomiya.devで登壇しました
Chiaki Okamoto
February 01, 2026
More Decks by Chiaki Okamoto
See All by Chiaki Okamoto
20260315 AWSなんもわからん🥲
chiilog
2
200
コンテンツ作成者の体験を設計する
chiilog
0
180
20251102 WordCamp Kansai 2025
chiilog
1
1.9k
2025/09/18 AIコーディングで「保活手帳」を作ってみた
chiilog
0
110
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
3
1k
私の推しはブロックエディター 〜デフォルトブロックに触れ合う〜
chiilog
0
460
この一年で身についた“マトモ”な WordPressテーマの作り方
chiilog
7
2.1k
WordPressテーマの作り方 2019 私のベストプラクティス
chiilog
24
14k
Google Optimizeで始めるA/Bテスト #wbkyoto
chiilog
1
3.5k
Other Decks in Programming
See All in Programming
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
11
5.9k
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
720
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
6.8k
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
180
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
110
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.7k
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
11
4.3k
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
120
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
6.3k
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
290
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
210
Featured
See All Featured
Building Adaptive Systems
keathley
44
3.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
870
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
420
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
Transcript
生成AIを使ったコードレビューで 定性的に品質カバー 岡本千秋(@chiilog) 1
今日話すこと 1. 導入した経緯 2. 使用ツールの紹介 3. CodeRabbitの好きなところ 4. AIが見つけた問題の具体例(3つ) 5.
複数AIツール併用の効果 6. 定性的な品質カバー領域 7. 人間が集中すべき領域 2
岡本千秋 フロントエンドエンジニア Github: @chiilog X: @chiilogweb Zenn: https://zenn.dev/chiilog 3
導入した経緯 AIコーディング時代の課題 Claude Code や Cursor で コードを書かせる ↓ 大量のコードが生成される
↓ レビューが大変になる 4
「一次レビューもAIにやらせたらいいんでは?」 5
やってみた結果 AIが書いたコードをAIがレビュー(AI × AI) 人間は最終判断に集中できる 思った以上に細かいところまで見てくれる 6
AIレビューツール ツール 特徴 CodeRabbit GitHub / GitLab / Azure /
Bitbucket 対応 2クリックでインストール、無料で始められる 2M リポジトリ、13M PRで利用実績 Gemini Code Assist Google の AI コードレビューツール 設計の妥当性評価、リファクタリング提案 7
レビューを受けてClaude Codeが修正 ワークフロー Claude Code でコードを生成 ↓ PRを作成 ↓ CodeRabbit
& Gemini がレビュー ↓ Claude Code が指摘を受けて修正 ↓ AI × AI で品質向上 8
特徴 GitHub Actions経由でレビュー結果を取得 型の整合性チェック、コンパイルエラー検出にも対応 9
ここが好きだよCodeRabbit ① PRサマリー自動生成 大規模PRでも全体像を一瞬で把握できる 自動生成される内容(抜粋) Walkthrough - 変更内容の概要説明 シーケンス図 -
処理フローをMermaid形式で可視化 関連PRの自動リンク - コンテキスト把握が楽 10
ここが好きだよCodeRabbit ② 学習してくれる レビューコメントに返信してフィードバックを入れると、今後の レビューに反映してくれる CodeRabbit: 「この書き方は推奨されません」 ↓ 私: 「このプロジェクトの方針ではこのスタイルを採用しています」
↓ CodeRabbit: プロジェクト固有のルールを学習して、次回から反映 11
具体例①:型安全性の指摘 PR #118: 質問テンプレート機能とプレビュー機能を実装 問題 vi.fn() が暗黙の any 型 //
Before const mockApplyTemplate = vi.fn(); // After(CodeRabbit提案) type UseTemplateAPI = ReturnType<typeof useTemplate>; const mockApplyTemplate = vi.fn<UseTemplateAPI['applyTemplate']>(); 12
具体例①の学び TypeScriptの型安全性をテストコードでも維持 プロダクションコードだけでなく、テストコードでも型チェック 暗黙の any 型を許さない姿勢 Committable suggestionでワンクリック修正可能 レビューコメントからそのまま適用できる 修正の手間が最小限
13
具体例②:テストと実装の不一致検出 CodeRabbitの指摘 このテストは setAnalyticsConsent (useAnalytics)を前提に していますが、実装側は useCookieConsent の setConsent を
直接呼び出しています。モックの不一致によりテストが実装を 正しく検証できていません。 14
具体例②のコード // Before: モックが実装と不一致 vi.mock('../hooks/useCookieConsent', () => ({ useCookieConsent: vi.fn(()
=> ({ setConsent: vi.fn(), // 外から参照できない })), })); // After: 外部から参照可能 const setConsentMock = vi.fn(); vi.mock('../hooks/useCookieConsent', () => ({ useCookieConsent: vi.fn(() => ({ setConsent: setConsentMock, })), })); 15
ポイント 人間のレビューでも見落としがちなモック設計ミスを検出 テストコードと実装コードの整合性をチェック モック関数が外部から参照できないという設計ミスを指摘 テストが「通るけど意味がない」状態を防ぐ 16
具体例③:GA4二重カウント問題 CodeRabbitの指摘 gtag('config', measurementId) は既定で page_view を 送信します。本実装は手動で page_view イベントも発行している
ため、二重カウントの可能性があります。 17
具体例③のコード // 問題のコード window.gtag('config', measurementId, { anonymize_ip: true, cookie_expires: 60
* 60 * 24 * 30, }); // 修正 window.gtag('config', measurementId, { anonymize_ip: true, cookie_expires: 60 * 60 * 24 * 30, send_page_view: false, // 追加 }); 18
具体例③の学び 外部サービス(GA4)のベストプラクティスを把握している GA4のデフォルト動作を理解した上で指摘 計測データの品質に影響する問題を事前検出 ドキュメントを読まないと気づきにくい問題を指摘 19
2つのAI、レビュー観点が違う 観点 CodeRabbit Gemini 焦点 エッジケース処理・堅牢性 設計品質・保守性 スタイル 具体的な技術提案 高レベル評価
+ 提案 ポイント 異なる軸でレビューするので、併用すると多角的に品質が上がる! 20
「なんか違うな」と思ったらコメントする 黙って直すと、レビュワーの知見が貯まらない。 コメントからさらにブラッシュアップしたいとか聞きたいとかの ときは、Claude Codeに聞かずにレビュワーたちに聞く。 21
定性的な品質カバー領域 観点 検出例 型安全性 any 型の暗黙的使用 テスト品質 モック設計ミス、テスト/実装の不一致 外部サービス連携 GA4二重カウント、ベストプラクティス
→ これらをAIが自動でカバー 22
人間のレビュワーが集中すべき領域 AIが定型チェックを自動化することで、人間は以下に集中できる: 1. ビジネスロジックの妥当性 — 要件を満たしているか 2. アーキテクチャ設計の判断 — 将来の拡張に対応できるか
3. UX/UIの観点 — ユーザー体験として適切か 4. 深いセキュリティ検証 — 攻撃ベクトルの考慮 5. チーム文化・コーディング規約 — プロジェクト固有のルール 23
まとめ 1. CodeRabbitは定性的な品質観点を自動でカバー 型安全性・テスト品質・外部サービス連携など 2. 複数AIツールの併用で多層防御 各ツールが異なる観点で問題を検出 3. 人間のレビュワーは高次の判断に集中 ビジネスロジック・アーキテクチャ設計
24