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レビュー導入によるCIツールとの共存と最適化
Search
Masaya Nakashima / 中島 暢哉
March 06, 2025
Programming
1
2.2k
AIレビュー導入によるCIツールとの共存と最適化
2025/3/6 コードレビューどうしてる? 品質向上と効率化の現場Tips共有会 登壇資料
https://findy.connpass.com/event/345102/
Masaya Nakashima / 中島 暢哉
March 06, 2025
Tweet
Share
Other Decks in Programming
See All in Programming
Developing static sites with Ruby
okuramasafumi
0
150
無秩序からの脱却 / Emergence from chaos
nrslib
2
12k
AWS CDKの推しポイントN選
akihisaikeda
1
240
開発に寄りそう自動テストの実現
goyoki
1
440
なあ兄弟、 余白の意味を考えてから UI実装してくれ!
ktcryomm
10
11k
sbt 2
xuwei_k
0
190
スタートアップを支える技術戦略と組織づくり
pospome
8
15k
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
6
2k
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
390
TypeScript 5.9 で使えるようになった import defer でパフォーマンス最適化を実現する
bicstone
1
1k
社内オペレーション改善のためのTypeScript / TSKaigi Hokuriku 2025
dachi023
1
490
ViewファーストなRailsアプリ開発のたのしさ
sugiwe
0
400
Featured
See All Featured
For a Future-Friendly Web
brad_frost
180
10k
KATA
mclloyd
PRO
32
15k
Git: the NoSQL Database
bkeepers
PRO
432
66k
What's in a price? How to price your products and services
michaelherold
246
12k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Visualization
eitanlees
150
16k
Making Projects Easy
brettharned
120
6.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Bash Introduction
62gerente
615
210k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
700
The Cult of Friendly URLs
andyhume
79
6.7k
Transcript
AIレビュー導入によるCIツールとの共存と最適化 中島 暢哉 2025年3月6日 1
自己紹介 中島 暢哉 合同会社 DMM.com プラットフォーム開発本部 第1開発部 アカウントサービスグループ 会員バックエンドチーム チーム記事
• AWS Database Migration Service (DMS) – MySQLでの活用Tips集 • DMM会員基盤 オンプレミスMySQLからAmazon Aurora MySQLへの移行方法とハマった点 • Pull Request のレビュー効率をあげるためにやっておきたいこと 2
None
会員バックエンドチーム・開発環境 チーム規模 • リーダー1名含めた開発者7名体制 開発環境 • 言語:Go • インフラ環境:AWS •
CI:GitHub Actions ◦ Lint ◦ Testなど • CD:ArgoCD • Docker / Kubernetes 4
コードレビューの課題 • レビューの質に一貫性がない ◦ 人員異動が発生したときに備えて最低限の質を担保したい(属人化の回避) • 変更内容のドキュメント作成が負担になる ◦ 人によって内容の粒度が違う •
Pull Requestが大きいと認知負荷が高い ◦ 分割にも限界がある ◦ 単純なミスの指摘漏れが発生しやすい ◦ 結果としてリードタイムが長くなる → AIレビューの導入を検討 5
AIレビュー(PR-Agent)導入の目的 目的:レビューコストの削減とコード品質の向上 ✅ 初回レビューの自動化 • タイプミスやエラーの見落としを未然に防ぐ • Pull Requestのタイトルや説明を整理し、レビュアーの理解を促進 ✅
人間のレビューを高度化 • AIが初歩的なミスを指摘 → 人間はアーキテクチャや設計に集中できる • レビューの速度と品質を向上させ、全体の効率を改善 AIレビューの導入によりレビュー負担を軽減しつつ、 コード品質を担保することを目指しました。 6
PR-Agentの概要 PR-Agentは、Codium AIにより、オープンソースで開発されている AIツール 裏側では、GPT-3.5やGPT-4を使い、GitHubのPull Requestに対して行える、 以下の機能を提供しています。 • Pull Requestで変更されたコードの、分析・要約・レビューを行う
• Pull Requestのタイトルと説明を変更する • Pull Requestで変更されたコードの改善提案を行う など また、PR-Agentからは、GitHub ActionsのWorkflowを使って導入するためのActionsが提供されている ため、Azure OpenAI API Keyさえあれば導入は簡単にできます。 https://github.com/qodo-ai/pr-agent 7
PR-Agentの導入例 describe機能 8
PR-Agentの導入例 improve機能 9
PR-Agent導入後の気づき メリット • よくあるミス・言語仕様の理解度が高い ◦ 見逃しがちなTypoやデバック用のコードに対する指摘 ◦ 言語仕様的なミスに対する検出精度 • Pull
Requestの説明を整理・要約 ◦ レビューポイントをまとめてくれる デメリット • ドメイン知識が弱い ◦ プロジェクト固有の仕様や業務ルールを深く理解できない • ベストプラクティスの適用判断が難しい ◦ あえて実施していないケース(タイミングの関係等で採用できない)を適切に判断できない 10
コードレビューの課題 • ❌レビューの質に一貫性がない ◦ 人員異動が発生したときに備えて最低限の質を担保したい(属人化の回避) • ✅変更内容のドキュメント作成が負担になる ◦ 人によって内容の粒度が違う •
△Pull Requestが大きいと認知負荷が高い ◦ 分割にも限界がある ◦ 単純なミスの指摘漏れが発生しやすい ◦ 結果としてリードタイムが長くなる 11
既存のCIツール(Lint, Test…)とは何がちがうのか 12
AIレビューとCIツール 役割の違い 13 比較項目 AIレビュー(PR-Agent等) CIツール(Lint, Test等) 目的 PRの可読性向上、ミスの指摘 コード品質のチェック、規約の強制
チェック内容 タイプミスやロジックの改善提案、 PRの説明補助 Linter、型チェック、テスト実行 対応レベル 推奨(人が判断する) 強制(機械的にFail/Pass)
AIレビューとCIツールの棲み分け ✅ AIレビュー(PR-Agentなど) • Pull Requestの説明を整理し、レビュアーの負担を軽減 • 「ルールでは防げないが、人が見落としやすい部分を指摘」 ◦ 例:「この変数名は曖昧では?」
◦ 例:「この処理は簡潔に書けるのでは?」 • 人が最終的には判断を行う(人間のレビューはなくならない) ✅ CIツール(Lint, Testなど) • コーディング規約やフォーマットの自動チェック • 「ルールで決められたチェック」を自動で適用 ◦ 例: 「インデントがずれているので Fail」 • 機械的にFail/Passを決める部分を担当 14
まとめ ✅ AIレビュー • 標準的な指摘はできるもののドメインを理解して深い指摘ができてない • 最終的には人の判断が必要になる ✅ AIレビューとCIツールの棲み分け •
CIツール ◦ 機械的にFail/Passを決める部分を担当 • AIレビュー ◦ AIレビューは人間のレビューを補助し、より高度な議論を可能にする 15
AIレビュー導入によるCIツールとの共存と最適化 中島 暢哉 2025年3月6日 16