Slide 1

Slide 1 text

AIレビュー導入によるCIツールとの共存と最適化 中島 暢哉 2025年3月6日 1

Slide 2

Slide 2 text

自己紹介 中島 暢哉 合同会社 DMM.com プラットフォーム開発本部 第1開発部 アカウントサービスグループ 会員バックエンドチーム チーム記事 ● AWS Database Migration Service (DMS) – MySQLでの活用Tips集 ● DMM会員基盤 オンプレミスMySQLからAmazon Aurora MySQLへの移行方法とハマった点 ● Pull Request のレビュー効率をあげるためにやっておきたいこと 2

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

会員バックエンドチーム・開発環境 チーム規模 ● リーダー1名含めた開発者7名体制 開発環境 ● 言語:Go ● インフラ環境:AWS ● CI:GitHub Actions ○ Lint ○ Testなど ● CD:ArgoCD ● Docker / Kubernetes 4

Slide 5

Slide 5 text

コードレビューの課題 ● レビューの質に一貫性がない ○ 人員異動が発生したときに備えて最低限の質を担保したい(属人化の回避) ● 変更内容のドキュメント作成が負担になる ○ 人によって内容の粒度が違う ● Pull Requestが大きいと認知負荷が高い ○ 分割にも限界がある ○ 単純なミスの指摘漏れが発生しやすい ○ 結果としてリードタイムが長くなる → AIレビューの導入を検討 5

Slide 6

Slide 6 text

AIレビュー(PR-Agent)導入の目的 目的:レビューコストの削減とコード品質の向上 ✅ 初回レビューの自動化 ● タイプミスやエラーの見落としを未然に防ぐ ● Pull Requestのタイトルや説明を整理し、レビュアーの理解を促進 ✅ 人間のレビューを高度化 ● AIが初歩的なミスを指摘 → 人間はアーキテクチャや設計に集中できる ● レビューの速度と品質を向上させ、全体の効率を改善 AIレビューの導入によりレビュー負担を軽減しつつ、 コード品質を担保することを目指しました。 6

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

PR-Agentの導入例 describe機能 8

Slide 9

Slide 9 text

PR-Agentの導入例 improve機能 9

Slide 10

Slide 10 text

PR-Agent導入後の気づき メリット ● よくあるミス・言語仕様の理解度が高い ○ 見逃しがちなTypoやデバック用のコードに対する指摘 ○ 言語仕様的なミスに対する検出精度 ● Pull Requestの説明を整理・要約 ○ レビューポイントをまとめてくれる デメリット ● ドメイン知識が弱い ○ プロジェクト固有の仕様や業務ルールを深く理解できない ● ベストプラクティスの適用判断が難しい ○ あえて実施していないケース(タイミングの関係等で採用できない)を適切に判断できない 10

Slide 11

Slide 11 text

コードレビューの課題 ● ❌レビューの質に一貫性がない ○ 人員異動が発生したときに備えて最低限の質を担保したい(属人化の回避) ● ✅変更内容のドキュメント作成が負担になる  ○ 人によって内容の粒度が違う ● △Pull Requestが大きいと認知負荷が高い ○ 分割にも限界がある ○ 単純なミスの指摘漏れが発生しやすい ○ 結果としてリードタイムが長くなる 11

Slide 12

Slide 12 text

既存のCIツール(Lint, Test…)とは何がちがうのか 12

Slide 13

Slide 13 text

AIレビューとCIツール 役割の違い 13 比較項目 AIレビュー(PR-Agent等) CIツール(Lint, Test等) 目的 PRの可読性向上、ミスの指摘 コード品質のチェック、規約の強制 チェック内容 タイプミスやロジックの改善提案、 PRの説明補助 Linter、型チェック、テスト実行 対応レベル 推奨(人が判断する) 強制(機械的にFail/Pass)

Slide 14

Slide 14 text

AIレビューとCIツールの棲み分け ✅ AIレビュー(PR-Agentなど) ● Pull Requestの説明を整理し、レビュアーの負担を軽減 ● 「ルールでは防げないが、人が見落としやすい部分を指摘」 ○ 例:「この変数名は曖昧では?」 ○ 例:「この処理は簡潔に書けるのでは?」 ● 人が最終的には判断を行う(人間のレビューはなくならない) ✅ CIツール(Lint, Testなど) ● コーディング規約やフォーマットの自動チェック ● 「ルールで決められたチェック」を自動で適用 ○ 例: 「インデントがずれているので Fail」 ● 機械的にFail/Passを決める部分を担当 14

Slide 15

Slide 15 text

まとめ ✅ AIレビュー ● 標準的な指摘はできるもののドメインを理解して深い指摘ができてない ● 最終的には人の判断が必要になる ✅ AIレビューとCIツールの棲み分け ● CIツール ○ 機械的にFail/Passを決める部分を担当 ● AIレビュー ○ AIレビューは人間のレビューを補助し、より高度な議論を可能にする 15

Slide 16

Slide 16 text

AIレビュー導入によるCIツールとの共存と最適化 中島 暢哉 2025年3月6日 16