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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Chiaki Okamoto
February 01, 2026
Programming
0
41
生成AIを使ったコードレビューで定性的に品質カバー
2026/02/01にnishinomiya.devで登壇しました
Chiaki Okamoto
February 01, 2026
Tweet
Share
More Decks by Chiaki Okamoto
See All by Chiaki Okamoto
コンテンツ作成者の体験を設計する
chiilog
0
78
20251102 WordCamp Kansai 2025
chiilog
1
1.5k
2025/09/18 AIコーディングで「保活手帳」を作ってみた
chiilog
0
82
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
2
540
私の推しはブロックエディター 〜デフォルトブロックに触れ合う〜
chiilog
0
400
この一年で身についた“マトモ”な WordPressテーマの作り方
chiilog
7
2.1k
WordPressテーマの作り方 2019 私のベストプラクティス
chiilog
24
14k
Google Optimizeで始めるA/Bテスト #wbkyoto
chiilog
1
3.5k
こんなCSSからはそろそろ卒業しよう
chiilog
18
17k
Other Decks in Programming
See All in Programming
今から始めるClaude Code超入門
448jp
6
7.2k
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
270
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
610
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
5.9k
Fragmented Architectures
denyspoltorak
0
140
AI時代の認知負荷との向き合い方
optfit
0
110
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
360
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
430
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.7k
CSC307 Lecture 05
javiergs
PRO
0
490
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
160
Featured
See All Featured
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
130
WENDY [Excerpt]
tessaabrams
9
36k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
920
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
150
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
290
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
48
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
3.9k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
Become a Pro
speakerdeck
PRO
31
5.8k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
720
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