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
MCPサーバー「モディフィウス」で変更容易性の向上をスケールする / modifius
Search
MinoDriven
November 05, 2025
Programming
3
250
MCPサーバー「モディフィウス」で変更容易性の向上をスケールする / modifius
Qiita Conference 2025 Autumnの登壇資料です
https://qiita.com/official-campaigns/conference/2025-autumn
MinoDriven
November 05, 2025
Tweet
Share
More Decks by MinoDriven
See All by MinoDriven
AI時代に必須!状況言語化スキル / ai-context-verbalization
minodriven
2
290
エンジニアとして高みを目指す、 利益を生み出す設計の考え方 / design-for-profit
minodriven
27
13k
AI時代のドメイン駆動設計-DDD実践におけるAI活用のあり方 / ddd-in-ai-era
minodriven
26
11k
AI時代の『改訂新版 良いコード/悪いコードで学ぶ設計入門』 / ai-good-code-bad-code
minodriven
27
12k
ソフトウェア品質特性、意識してますか?AIの真の力を引き出す活用事例 / ai-and-software-quality
minodriven
22
8.8k
プロフェッショナルとしての成長「問題の深掘り」が導く真のスキルアップ / issue-analysis-and-skill-up
minodriven
8
2.5k
『改訂新版 良いコード/悪いコードで学ぶ設計入門』活用方法−爆速でスキルアップする!効果的な学習アプローチ / effective-learning-of-good-code
minodriven
33
7.1k
破壊せよ!データ破壊駆動で考えるドメインモデリング / data-destroy-driven
minodriven
20
5.9k
アーキテクチャレベルで考える開発生産性 / architecture-and-productivity
minodriven
24
14k
Other Decks in Programming
See All in Programming
CSC305 Lecture 12
javiergs
PRO
0
250
業務でAIを使いたい話
hnw
0
220
Node-REDのノードの開発・活用事例とコミュニティとの関わり(Node-RED Con Nagoya 2025)
404background
0
110
CSC509 Lecture 08
javiergs
PRO
0
270
CSC305 Lecture 14
javiergs
PRO
0
170
ALL CODE BASE ARE BELONG TO STUDY
uzulla
29
6.9k
EMこそClaude Codeでコード調査しよう
shibayu36
0
550
kiroとCodexで最高のSpec駆動開発を!!数時間で web3ネイティブなミニゲームを作ってみたよ!
mashharuki
0
1k
開発組織の戦略的な役割と 設計スキル向上の効果
masuda220
PRO
10
2k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
480
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
170
Software Architecture
hschwentner
6
2.4k
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Navigating Team Friction
lara
190
15k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
The Language of Interfaces
destraynor
162
25k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Transcript
© DMM © DMM MCPサーバー 「モディフィウス」 で変更容易性の向上を スケールする 2025/11/06 Qiita
Conference 2025 Autumn 合同会社DMM.com ミノ駆動
© DMM 自己紹介 ミノ駆動 ( @MinoDriven ) 合同会社DMM.com プラットフォーム開発本部 第3開発部
DeveloperProductivityGroup コード品質チーム DMMプラットフォームの設計を改善し 開発生産性向上を図るのがミッション 2
© DMM 著書紹介 『改訂新版 良いコード/悪いコードで学ぶ設計入門』 変更容易性の高い設計を学ぶ、 初級〜中級向け入門書 初版は12刷重版 ITエンジニア本大賞2023技術書部門大賞受賞 台湾版、韓国語版でも翻訳出版
3
© DMM どのコードが技術的負債なのか よく分からない……
© DMM 負債をどう直せばいいのか分からない……
© DMM そんな悩みを解決する 便利なツールを開発しました
© DMM その名も
© DMM MCPサーバー 「モディフィウス」
© DMM モディフィウスは 負債分析や設計改善提案をしてくれる AIエージェント用MCPサーバーです
© DMM 今日はモディフィウスについて 開発の経緯 機能 仕組み 今後の展望 を解説します
© DMM 第1部 開発の経緯
© DMM 12
© DMM こうした多くのサービスを下支えしているのが 「DMMプラットフォーム」
© DMM DMMプラットフォーム 会員登録、不正対策、決済、クーポンなど、 DMMサービス全体共通の技術基盤
© DMM 15 下記システムがDMMサービス全体の技術基盤となっています
© DMM 16 プラットフォーム全体の開発生産性 DMMプラットフォームは各基盤システムごとにリポジトリがあり、 それぞれ開発チームが編成されています。 プラットフォーム開発本部全体でエンジニア総数120名以上。 しかし年々コードの品質が悪化し、技術的負債が増大。 プラットフォーム全体の開発生産性低下が問題視されていました。
© DMM この問題を解決するのが Developer Productivity Group コード品質チーム
© DMM コード品質チーム とは 正式名称: プラットフォーム開発本部/第3開発部/ Developer Productivity Group/コード品質チーム ソフトウェアの開発生産性向上に関する取り組みには、 開発プロセスの改善や自動化などがあります。
コード品質の改善によって開発生産性向上を図るのが 本チームのミッションです。 18
© DMM コード品質 : 変更容易性 なるべくバグを埋め込まず、素早く正確にコード変更できる度合いを 変更容易性といいます。 変更容易性に問題のあるコードは複雑で混乱しています。 些細なコード変更でバグが埋め込まれやすい構造です。 バグを埋め込まないよう、慎重に修正検討しなければなりません。
なかなかコード変更できなくなるため、開発生産性が低下してしまいます。 コードの変更容易性向上が本チームの目指すところです。 19
© DMM コード品質チームの取り組み コード品質向上のため、プラットフォーム開発本部のチーム全体に対し 以下のような支援的取り組みをしています。 • 設計スキル育成(ワークショップ形式の勉強会実施) • チームへの設計指導や相談、コンサル •
設計ガイドライン策定 • コード品質に関係する基盤整備やツール開発 etc.. こうした取り組みにより、コード品質は徐々に改善しつつはあります。 しかし…… 20
© DMM コード品質「チーム」なのに……
© DMM ミノ駆動1人しかいない!!
© DMM ぼっチーム!!!
© DMM もっといろんなチームに対して設計支援したいのに 自分1人では正直全然手が回りません
© DMM 「ワイ、100人ぐらいに増えないかなぁ」
© DMM 「せや、AIにワイの分身やらせればええんや!」
© DMM というワケで開発しました MCPサーバー「モディフィウス」!!
© DMM 第2部 モディフィウスとその機能
© DMM MCPサーバー「モディフィウス」 変更容易性に関して包括的な支援機能を提供するMCPサーバー。 CursorやClaude CodeなどのAIエージェントと連携して使います。 現在、以下の機能を提供しています。 • 高精度な技術的負債分析 •
設計改善提案 • 高品質テストコード実装 • (将来もっと機能が増えます、後述) Modifius = modifiability(変更容易性) + ius(ラテン語の威厳ある 男性名の語尾) 「変化を司る者」という意味です 29
© DMM 【機能紹介】 高精度な技術的負債分析
© DMM 31 静的解析ツールとの負債分析観点比較 静的解析ツールは「コードの意図」がわかりません。 一方、生成AIは意図を推論できます。 生成AIだからこそ可能な負債分析です。 一般的な静的解析ツールの分析観点 コード行数 サイクロマチック複雑度
コード重複 引数の数 etc.. モディフィウスの分析観点 カプセル化 関心の分離 ドメインモデル完全性 技術レイヤ間の関心の分離 各設計パターン毎の設計要件 interface設計 etc..
© DMM 32 『改訂新版 良いコード/悪いコードで学ぶ設計入門』記載の悪いコード
© DMM 33 「関心の分離」観点の負債分析 独自計算式に基づく負債スコアリング機能付き
© DMM 34 カプセル化観点の負債分析
© DMM スケールする負債分析の質と量 例えば約400行ほどのソースコードの負債を洗いざらい分析する場合 • ミノ駆動の目視 : 約15〜30分(ドメイン知識に依存) • モディフィウス
: 約20秒(※) 私は変更容易性やリファクタリングを専門としていますが、 私とほぼ同等の精度で、かつ40倍以上の生産性で分析!! (※Cursor2.0 + Composer1を利用した場合の速度) 35
© DMM GitHub Actionsで負債の定期計測 GitHub Actionsからモディフィウスを呼び出し、 負債を定期的に計測する基盤も整備中です。 36
© DMM 【機能紹介】 設計改善提案
© DMM 38 省略していますが、 mermaidのクラス図も 出力して設計改善を提 案します。
© DMM 39 DMMエンジニア全員がモディフィウスを使える ミノ駆動の分身をお手軽に増やせる体制
© DMM 負債分析機能 利用者の声 40 巨大クラス内で、複数の異なる目的のユースケースが混在することを指摘してくれ た。infraの関心ごとがアプリケーション層に混在していることも指摘してくれた。 単なる構文解析に留まらず、責務の独立性や関心の分離といった設計原則に基づく 分析がなされていた点も優れていました。 レイヤごとの適切なロジックの持ち方、entity,aggregateの判別などが適切だっ た。人間と違って同じこと聞いても怒らないので気持ちが楽。
問題の可視化しやすい。コードに迷っている人がいたらモディフィウスを提案できる ぐらい使いやすい。
© DMM 設計改善提案機能 利用者の声 41 巨大なServiceの改善提案を指示した結果、どう分割してビジネスロジックはどの ドメインになるかといったクラス図の相関を作成。正直この通りリファクタするだけ でも技術的負債の解消としてはかなり効果があると感じた。 クラス全体をグラフ構造で可視化し、依存関係を明確に示してくれた点が非常に優 れていました。設計提案内容も現実的。645行あったファイルを345行までスリム 化できた。
改善後のドメインモデル図がわかりやすく、レビュー時に話がしやすかった。 マーメイド記法で図を出してもらえるので全体の概要→詳細として入っていきやす い。改善の参考情報として扱いやすい。
© DMM 第3部 モディフィウスの仕組み
© DMM モディフィウスの実態はプロンプト 「わざわざMCPサーバーとして用意せず、 普通にAIに『負債分析して』と指示すればいいんじゃないの?」 と思った方がいるかもしれません。 AIモデルの性能はどんどん上がってきてはいますが、 「素の状態」だと高品質な回答をしてくれません。 AIは学習内容の平均に収斂する性質があります。 そのため、粗悪な学習内容に基づいた回答をしてくることもあります。
したがって高品質な回答を引き出すには適切なプロンプトが必要です。 モディフィウスは、変更容易性に関するプロンプトを返すMCPサーバー。 実態はプロンプト群です。 43
© DMM 横断的な機能提供にはMCPサーバー 「実態がプロンプトなら、AIエージェント用のカスタムプロンプトでも 実現できるのでは?MCPサーバーである必要がないのでは?」 と考える人もいるかもしれません。 はじめはカスタムプロンプトで提供していました。 しかしプロンプトを手動更新する必要があるなど煩わしさがありました。 Claude CodeのAgent
Skillなどでも実現できますが、 機能が特定のAIエージェントに強結合してしまいます。 特定のAIエージェントに依存せず横断的に機能提供する手段として 現状としてはMCPサーバーを選択しています。 44
© DMM 45 状況に応じて必要な プロンプトを複数呼び出し 負債分析時のモディフィウス呼び出し
© DMM 46 機能 コア プロンプト DDD Spring Boot Container
Presentation 設計観点 負債分析 設計改善提案 テストコード 実装 対応言語 Go Java Kotlin PHP モディフィウスは柔軟な機能拡張ができるよう、 徹底的なモジュール化が図られています。
© DMM 47 機能 コア プロンプト DDD Spring Boot Container
Presentation 設計観点 負債分析 設計改善提案 テストコード 実装 対応言語 Go Java Kotlin PHP コアプロンプトはモディフィウスの心臓部分です。 変更容易性に関する基盤的考え方を プロンプトとして定義しています。 ミノ駆動の思考を模倣する内容になっています。 具体的なプロンプトは企業秘密ですが、 拙著『改訂新版 良いコード/悪いコードで学ぶ設計 入門』がベースになっています。
© DMM 48 機能 コア プロンプト DDD Spring Boot Container
Presentation 設計観点 負債分析 設計改善提案 テストコード 実装 対応言語 Go Java Kotlin PHP コアプロンプトをベースに、 変更容易性に関するさまざまな支援機能が 機能します。
© DMM 49 機能 コア プロンプト DDD Spring Boot Container
Presentation 設計観点 負債分析 設計改善提案 テストコード 実装 対応言語 Go Java Kotlin PHP DDDやSpringBootなど、 さまざまなアーキテクチャやフレームワークの設計 観点を加えた負債分析や設計ができます。
© DMM 50 機能 コア プロンプト DDD Spring Boot Container
Presentation 設計観点 負債分析 設計改善提案 テストコード 実装 対応言語 Go Java Kotlin PHP さまざまなプログラミング言語に 対応可能です。
© DMM 第4部 今後の展望
© DMM 52 機能 コア プロンプト DDD Spring Boot Container
Presentation 設計観点 負債分析 設計改善提案 テストコード 実装 対応言語 Go Java Kotlin PHP 前述したように、 モディフィウスは柔軟な機能拡張が可能です。
© DMM 53 DDD Spring Boot Container Presentation 設計観点 Laravel
React Vue さまざまなアーキテクチャやフレームワークの 設計観点も容易に追加拡張可能です
© DMM 54 Python TypeScript C# 対応言語も同様に追加容易です 対応言語 Go Java
Kotlin PHP
© DMM 55 ドメインモデリング 高品質コード実装 新機能開発も進めています 機能 負債分析 設計改善提案 テストコード
実装 自動リファクタリング 目玉機能はなんといってもこれ!! 実現できれば最強無敵 もはや負債など恐るるに足らず
© DMM テストコード実装は もはや人間の仕事ではないです 人間より明らかに実装速度や精度が上です 同様にリファクタリングも ほとんどAIにお任せできる日が来るかも知れません
© DMM モディフィウスは今後 AIエージェント化を考えています AIエージェント化できれば DMMだけでなく皆さんも利用できるでしょう
© DMM 自動リファクタリング機能を備えた モディフィウスが世界中で使われるようになる…… 負債の苦しみから人類が解放される日が 来るかもしれません
© DMM ご清聴ありがとうございました