AI対応アーキテクチャパラダイム
AI コード生成に適したアーキテクチャパターンを設計する方法を学び、AI をアーキテクチャの障害ではなく助けにする。
コアな洞察:アーキテクチャはコンテキストである
AI プログラミングの時代において、アーキテクチャ設計では AI の特性を考慮する必要がある。優れたアーキテクチャは、AI がコードを理解し生成しやすくするべきであり、複雑さを増すべきではありません。本章では、AI に適した4つのアーキテクチャ・パラダイムを紹介します。
Clean Architecture with AI
Clean Architecture の階層構造は AI による分割生成と保守に自然に適しており、各レイヤーには明確な責務の境界があります。
AI が各レイヤーのインターフェースと実装を生成する
Clean Architecture の階層構造により、AI は単一のレイヤーのコード生成に集中できます。
AI は業務要件に基づいてドメインエンティティを生成し、業務ルールと検証ロジックを含みます
- • 純粋なビジネスロジック、外部依存なし
- • AI はドメインモデルに基づいてエンティティコードを生成できる
AI がユーザーストーリーに基づいて用例を生成し、エンティティ層とインターフェース層を調整する
- • 具体的な業務ユースケースを実現する
- • AI は PRD に基づいてユースケースのコードを生成できる
AI がインターフェース仕様に基づいてアダプター実装を生成し、外部システムに接続する
- • 外部インターフェースの適応を実装
- • AI は API ドキュメントに基づいてインターフェースコードを生成できる
ルールに依存するAIチェック
AI はコードが Clean Architecture の依存関係ルールに従っているかを自動的に確認できます。
- 内側は外側に依存せず、外側は内側に依存する
- 依存関係の方向は内向きのみで、外向きにはできない
- エンティティ層は他のどの層にも依存しない
- • コードの依存関係を分析し、違反依存を検出する
- • 依存関係図を生成し、アーキテクチャを可視化する
- • リファクタリングの提案を行い、依存関係の問題を修正する
利点:各層の疎結合により、AI による分割生成と保守に適している
CDD (Component-Driven Development)
Component-Driven Development はコンポーネントからアプリを構築することを重視しており、このボトムアップの手法は AI 生成に非常に適しています。
AIによる原子コンポーネント(Atomic Design)の支援設計
Atomic Design はコンポーネントを原子、分子、組織、テンプレート、ページの5つの階層に分け、AI は最も基本的な原子コンポーネントから生成できます。
Storybook のドキュメントとテストを自動生成
AI は各コンポーネントの Storybook ドキュメントとテストケースを自動生成できます。
- • AI がコンポーネント Props を分析し、Story ファイルを生成する
- • さまざまな状態の Story を自動生成する
- • コンポーネントの使用ドキュメントを生成する
- • コンポーネントのサンプルコードを生成
- • AI による単体テスト生成
- • 生成的ビジュアル回帰テスト
- • 生成的インタラクションテスト
- • アクセシビリティテストを生成する
利点:コンテキスト分離により、AI は単一コンポーネントの実装に集中できる
Spec-First Development
Spec-First Development は、まず仕様を書き、その後にコードを生成することを重視し、仕様がAIの「真理の源」となります。
PRD → OpenAPI Spec → Code 生成フロー
PRD ドキュメント
製品要件定義書を作成し、機能と業務ルールを定義する
OpenAPI Spec
PRD に基づいて OpenAPI 仕様を生成し、API インターフェースを定義する
コード生成
AI が OpenAPI Spec に基づいてクライアントとサーバーのコードを生成
利点:SpecをAIの「真実の源」として活用する
OpenAPI Spec は API の唯一のデータソースであり、フロントエンド、バックエンド、ドキュメントはすべて同じ Spec から生成され、一貫性が保証されます
Spec は完全な型情報を定義しており、AI が生成したコードは本質的に型安全性を備えています
Spec が更新されると、AI は関連するすべてのコードを自動更新して、同期を維持できます
- • Spec に基づいて TypeScript の型定義を生成する
- • API クライアントコードを生成
- • サーバーサイドのルートとコントローラーを生成する
- • APIドキュメントとMockデータを生成する
- • 統合テストケースを生成する
Micro-Agent Pattern
Micro-Agent Pattern は、複雑な機能を複数の専門 Agent に分解し、各 Agent が特定のタスクを担当します。
複雑な機能を複数のAgentが協働するネットワークに分解する
大規模なタスクを複数のサブタスクに分解し、各サブタスクを専任の Agent が担当し、Agent 同士はメッセージのやり取りで協調する。
アーキテクト Agent + ドメインエキスパート Agent + レビュー Agent
- • システム要件を分析し、全体アーキテクチャを設計する
- • 適切な技術スタックとデザインパターンを選ぶ
- • モジュールの境界とインターフェース仕様を定義する
- • 開発計画とタスク分解を策定する
- • ビジネス要件を理解し、ビジネスロジックを実装する
- • ドメイン駆動設計の原則を適用する
- • ドメインモデルと業務コードの生成
- • コードが業務ルールに適合していることを保証する
- • コード品質と規約をチェック
- • 潜在的な問題とリスクを特定する
- • リファクタリングと最適化の提案を行う
- • コードがアーキテクチャ設計に適合していることを確認する
利点:専門分担により、コード品質を向上させる
学習成果
この章を終えると、あなたは:
- 1Clean Architecture が AI コード生成にどう適応するかを理解し、階層化コード生成戦略を習得する
- 2Component-Driven Development の作業方法を習得し、AI を活用してコンポーネント設計を支援できる
- 3Spec-First Development の価値を理解し、規範主導の開発プロセスを構築できる
- 4Micro-Agent Pattern の設計思想を理解し、複数エージェント協調システムを設計できる
- 5プロジェクトの特徴に応じて適切な AI 適応アーキテクチャパラダイムを選択できる