🧠
AI時代にMVCは死んだのか?:BOA(境界指向アーキテクチャ)による再定義
先に結論
MVCは死んでいません。
ただし、AI時代の前提では「そのままでは足りない」。
問題はMVCやDDDの良し悪しではなく、
AIが生成する「確率的なロジック」を、どこに置くかです。
なぜMVC/DDDでは苦しくなるのか
従来の設計では、次の2つが同じ場所に置かれがちでした。
- 判断・計算・ロジック
- 状態変更・副作用(DB更新、API実行など)
人間がコードを書く前提では、これは問題になりませんでした。
しかし Vibe Coding(AIによる自動生成) では事情が変わります。
AIは、
- 高速に
- 確率的に
- 文脈依存で
ロジックを書き換え続けます。
その結果、
「考え方」と「実行」が混ざったまま生成されると、
小さな変更が致命的な副作用に直結します。
BOAが前提にする分離(The Triad)
BOA(Boundary-Oriented Architecture)では、
システムを次の3領域に分けます。
Fact(事実 / Anchor)
- ユーザー入力
- DBの永続データ
- 解釈を含まない不変情報
Meaning(意味 / Fluid Zone)
- 判断
- 計算
- ビジネスロジック
- AIが自由に生成・破棄してよい領域
Responsibility(責任 / Protected Zone)
- DB書き込み
- 決済
- 通知
- 実世界に影響する副作用
重要なのは、
Meaning と Responsibility の間に明確な境界を引くことです。
MVC / DDDとの違い
| 観点 | MVC / DDD | BOA |
|---|---|---|
| ロジック | モデル内に混在 | Meaningに隔離 |
| 副作用 | 同居しがち | Responsibilityに集約 |
| AI生成 | 想定外 | 前提条件 |
| 安全性 | 人間依存 | 構造で担保 |
BOAはMVCを否定しません。
「AIが書き換える前提」を追加しただけです。
結論
AI時代に必要なのは、新しいフレームワークではなく、
新しい境界の引き方です。
MVCは死なない。
しかし、境界を引けない設計は壊れる。
この考え方の背景や全体像は、以下にまとめています。
VCDesign.org
GitHub: VCDesign-org
Discussion
具体例が欲しいでござる
コメントありがとうございます!
まずBOAにはMVCのような「VC」はありません。
AIや外部サービスが操作主体になる時代では、
View/Controller という UI 前提の責務が固定できないため、
BOAでは Operation / Boundary / Agent という形で
「責務を再配置」しています。
「ユーザー登録」を例にすると、
MVCでは Controller がバリデーションや例外処理まで抱えがちですが、
BOAでは Operation / Boundary / Agent に分かれて責務が明確になります。
この“境界”があることで、AIが操作を代行しても内部構造が崩れない──
というのがBOAの特徴です。
続きを書きました