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レビュー導入によるCIツールとの共存と最適化
Search
Masaya Nakashima / 中島 暢哉
March 06, 2025
Programming
1
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
第9回 情シス転職ミートアップ 株式会社IVRy(アイブリー)の紹介
ivry_presentationmaterials
1
260
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
380
エンジニア向け採用ピッチ資料
inusan
0
180
A2A プロトコルを試してみる
azukiazusa1
2
1.3k
Google Agent Development Kit でLINE Botを作ってみた
ymd65536
2
220
Azure AI Foundryではじめてのマルチエージェントワークフロー
seosoft
0
150
Team operations that are not burdened by SRE
kazatohiei
1
290
データの民主化を支える、透明性のあるデータ利活用への挑戦 2025-06-25 Database Engineering Meetup#7
y_ken
0
340
GraphRAGの仕組みまるわかり
tosuri13
8
520
Deep Dive into ~/.claude/projects
hiragram
10
2.2k
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
250
ruby.wasmで多人数リアルタイム通信ゲームを作ろう
lnit
2
330
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
4 Signs Your Business is Dying
shpigford
184
22k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
A better future with KSS
kneath
239
17k
Practical Orchestrator
shlominoach
188
11k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.8k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
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