第5章

AI対応アーキテクチャパラダイム

AI コード生成に適したアーキテクチャパターンを設計する方法を学び、AI をアーキテクチャの障害ではなく助けにする。

コアな洞察:アーキテクチャはコンテキストである

AI プログラミングの時代において、アーキテクチャ設計では AI の特性を考慮する必要がある。優れたアーキテクチャは、AI がコードを理解し生成しやすくするべきであり、複雑さを増すべきではありません。本章では、AI に適した4つのアーキテクチャ・パラダイムを紹介します。

Clean Architecture with AI

Clean Architecture の階層構造は AI による分割生成と保守に自然に適しており、各レイヤーには明確な責務の境界があります。

AI が各レイヤーのインターフェースと実装を生成する

Clean Architecture の階層構造により、AI は単一のレイヤーのコード生成に集中できます。

Entities(エンティティ層)

AI は業務要件に基づいてドメインエンティティを生成し、業務ルールと検証ロジックを含みます

  • • 純粋なビジネスロジック、外部依存なし
  • • AI はドメインモデルに基づいてエンティティコードを生成できる
Use Cases(ユースケース層)

AI がユーザーストーリーに基づいて用例を生成し、エンティティ層とインターフェース層を調整する

  • • 具体的な業務ユースケースを実現する
  • • AI は PRD に基づいてユースケースのコードを生成できる
Interfaces(インターフェース層)

AI がインターフェース仕様に基づいてアダプター実装を生成し、外部システムに接続する

  • • 外部インターフェースの適応を実装
  • • AI は API ドキュメントに基づいてインターフェースコードを生成できる

ルールに依存するAIチェック

AI はコードが Clean Architecture の依存関係ルールに従っているかを自動的に確認できます。

依存関係ルール
  • 内側は外側に依存せず、外側は内側に依存する
  • 依存関係の方向は内向きのみで、外向きにはできない
  • エンティティ層は他のどの層にも依存しない
AI チェック機能
  • • コードの依存関係を分析し、違反依存を検出する
  • • 依存関係図を生成し、アーキテクチャを可視化する
  • • リファクタリングの提案を行い、依存関係の問題を修正する

利点:各層の疎結合により、AI による分割生成と保守に適している

コンテキストの分離
各レイヤーには明確な責務があり、AI がコードを生成する際は現在のレイヤーのコンテキストだけに注目すればよい
並行開発
異なる層を並行して生成でき、開発効率を向上させる
保守しやすい
あるレイヤーを変更する際、AI はそのレイヤーのコードだけに注目すればよく、他のレイヤーには影響しない

CDD (Component-Driven Development)

Component-Driven Development はコンポーネントからアプリを構築することを重視しており、このボトムアップの手法は AI 生成に非常に適しています。

AIによる原子コンポーネント(Atomic Design)の支援設計

Atomic Design はコンポーネントを原子、分子、組織、テンプレート、ページの5つの階層に分け、AI は最も基本的な原子コンポーネントから生成できます。

アトム
Button, Input
分子
SearchBox
組織
Header, Footer
テンプレート
Page Layout
ページ
Complete Page
AI 生成フロー
1. アトミックコンポーネントから始め、AIに基本UIコンポーネントを生成させる
2. 原子コンポーネントを組み合わせて、分子コンポーネントを生成する
3. 分子コンポーネントを組み合わせて、組織コンポーネントを生成する
4. コンポーネントを組み合わせて編成し、ページテンプレートを生成する
5. テンプレートに基づいて完全なページを生成する

Storybook のドキュメントとテストを自動生成

AI は各コンポーネントの Storybook ドキュメントとテストケースを自動生成できます。

Storybook ドキュメント
  • • AI がコンポーネント Props を分析し、Story ファイルを生成する
  • • さまざまな状態の Story を自動生成する
  • • コンポーネントの使用ドキュメントを生成する
  • • コンポーネントのサンプルコードを生成
テストケース
  • • AI による単体テスト生成
  • • 生成的ビジュアル回帰テスト
  • • 生成的インタラクションテスト
  • • アクセシビリティテストを生成する

利点:コンテキスト分離により、AI は単一コンポーネントの実装に集中できる

コンポーネントの分離
各コンポーネントは独立しており、AI 生成時にはコンポーネントの Props と機能だけに注目すればよい
再利用性
生成されたコンポーネントは複数の場所で再利用でき、開発効率を高めます
テストしやすい
コンポーネントレベルのテストは、より書きやすく保守しやすい

Spec-First Development

Spec-First Development は、まず仕様を書き、その後にコードを生成することを重視し、仕様がAIの「真理の源」となります。

PRD → OpenAPI Spec → Code 生成フロー

1

PRD ドキュメント

製品要件定義書を作成し、機能と業務ルールを定義する

2

OpenAPI Spec

PRD に基づいて OpenAPI 仕様を生成し、API インターフェースを定義する

3

コード生成

AI が OpenAPI Spec に基づいてクライアントとサーバーのコードを生成

利点:SpecをAIの「真実の源」として活用する

単一のデータソース

OpenAPI Spec は API の唯一のデータソースであり、フロントエンド、バックエンド、ドキュメントはすべて同じ Spec から生成され、一貫性が保証されます

型安全性

Spec は完全な型情報を定義しており、AI が生成したコードは本質的に型安全性を備えています

自動同期

Spec が更新されると、AI は関連するすべてのコードを自動更新して、同期を維持できます

AI の生成能力
  • • Spec に基づいて TypeScript の型定義を生成する
  • • API クライアントコードを生成
  • • サーバーサイドのルートとコントローラーを生成する
  • • APIドキュメントとMockデータを生成する
  • • 統合テストケースを生成する

Micro-Agent Pattern

Micro-Agent Pattern は、複雑な機能を複数の専門 Agent に分解し、各 Agent が特定のタスクを担当します。

複雑な機能を複数のAgentが協働するネットワークに分解する

大規模なタスクを複数のサブタスクに分解し、各サブタスクを専任の Agent が担当し、Agent 同士はメッセージのやり取りで協調する。

エージェントタイプ
アーキテクト Agent
システム設計とアーキテクチャの意思決定を担当する
ドメイン専門家 Agent
ビジネスロジックとドメイン知識を担当する
レビューAgent
コードレビューと品質チェックを担当
協働プロセス
1. アーキテクトAgentが要件を分析し、アーキテクチャ案を作成する
2. ドメインエージェントが業務ロジックを実装する
3. レビュー担当 Agent がコード品質をチェックし、改善提案を行う
4. Agent 間はメッセージ伝達によって協調し、複雑なタスクを完了します

アーキテクト Agent + ドメインエキスパート Agent + レビュー Agent

アーキテクト Agent
  • • システム要件を分析し、全体アーキテクチャを設計する
  • • 適切な技術スタックとデザインパターンを選ぶ
  • • モジュールの境界とインターフェース仕様を定義する
  • • 開発計画とタスク分解を策定する
ドメイン専門家 Agent
  • • ビジネス要件を理解し、ビジネスロジックを実装する
  • • ドメイン駆動設計の原則を適用する
  • • ドメインモデルと業務コードの生成
  • • コードが業務ルールに適合していることを保証する
レビューAgent
  • • コード品質と規約をチェック
  • • 潜在的な問題とリスクを特定する
  • • リファクタリングと最適化の提案を行う
  • • コードがアーキテクチャ設計に適合していることを確認する

利点:専門分担により、コード品質を向上させる

専門化
各 Agent は自分の分野に専念し、専門性と正確性を高める
拡張可能
必要に応じて新しい Agent を追加し、システム機能を拡張できる
品質保証
コード品質を確保し、エラーと欠陥を減らすために Agent をレビューする

学習成果

この章を終えると、あなたは:

  • 1Clean Architecture が AI コード生成にどう適応するかを理解し、階層化コード生成戦略を習得する
  • 2Component-Driven Development の作業方法を習得し、AI を活用してコンポーネント設計を支援できる
  • 3Spec-First Development の価値を理解し、規範主導の開発プロセスを構築できる
  • 4Micro-Agent Pattern の設計思想を理解し、複数エージェント協調システムを設計できる
  • 5プロジェクトの特徴に応じて適切な AI 適応アーキテクチャパラダイムを選択できる