第 4 章

AI ネイティブ開発モード

AI 時代の開発パラダイムを習得し、TDD 2.0 から Agent-Driven Development まで学び、AI をあなたの最良の開発パートナーにしましょう。

コアとなる洞察: AI ネイティブ思考

AI プログラミングの時代において、開発モードでは再設計が必要。従来の開発手法は、AIの能力と特性に適応してこそ、その最大の価値を発揮できます。本章では、4つのAIネイティブ開発モードを紹介し、新しい開発思考の構築を支援します。

TDD (Test-Driven Development) 2.0

従来のTDDは赤-緑-リファクタリングのサイクルですが、AI時代ではこのサイクルがより速く、より賢くなります。

AI によるテストケース生成 (Given-When-Then)

BDD(ビヘイビア駆動開発)形式のテストケースを使用して、AIが要件を理解しやすくし、テストを生成しやすくする。

Given-When-Then 形式
Given ユーザーはログイン済み
When ユーザーが「注文を送信」ボタンをクリックしました
Then システムが注文を作成し、注文番号を返す
AI の強み
  • AI は大量のテストケースを素早く生成し、境界条件を網羅できる
  • Given-When-Then 形式は、AI がテスト意図を理解しやすくします
  • テストケースはドキュメントそのものであり、AI はテストに基づいて実装コードを生成できます

赤・緑・リファクタリングのサイクルを加速する AI メカニズム

テストを書く

AI は要件に基づいてテストケースを生成し、機能を素早く網羅します

実装を書く

AI はテストケースに基づいて最小限の実装を生成し、すばやくテストを通過する

リファクタリング

コードを最適化する

AIがコード品質を分析し、リファクタリングの提案を行い、最適化を実行します

実践: AI に先にテストを書かせ、その後実装を書く

ステップ 1:要件を記述する
"ユーザーログイン機能を実装し、ユーザー名とパスワードの検証が必要です"
ステップ 2:AI がテストケースを生成する
AI は要件に基づいて Given-When-Then 形式のテストケースを生成します
ステップ3:AIが実装コードを生成する
AI はテストケースに基づいて最小限の実装を生成し、テストの通過を保証する
ステップ4:AIによるリファクタリング最適化
AI がコード品質を分析し、リファクタリングの提案を行い、実行する

DDD (Domain-Driven Design) with AI

ドメイン駆動設計では、ビジネス領域を深く理解する必要があり、AI はドメイン知識をよりよく抽出するのに役立ちます。

AI で統一言語(Ubiquitous Language)を抽出する

共通言語は DDD の核心であり、AI は業務文書からドメイン用語を抽出するのに役立ちます。

AI 支援ワークフロー
  • 1.業務文書、要件文書、ユーザーストーリーを入力する
  • 2.AI が文書を分析し、ドメイン用語と概念を抽出する
  • 3.AI が用語の同義語と関連関係を認識する
  • 4.統一された言語辞書を生成し、チーム全体で一貫した用語の使用を確保する

AI 支援による境界づけられたコンテキスト(Bounded Contexts)の区分け

境界づけられたコンテキストは DDD における最も重要な概念であり、AI はコンテキスト境界の識別と分割を支援できます。

コンテキストを識別する
  • • AI が業務領域を分析し、異なる業務コンテキストを識別する
  • • コンテキスト間の依存関係を識別する
  • • コンテキストマッピングパターンを識別する(共有カーネル、顧客-サプライヤーなど)
境界を分割する
  • • AI によるコンテキスト境界の分割案の提案
  • • コンテキスト間の統合ポイントを特定する
  • • コンテキストマッピング図を生成する

エンティティ/値オブジェクト/集約ルートのコード生成戦略

AI はドメインモデルに基づいて、エンティティ、値オブジェクト、集約ルートのコード構造を自動生成できます。

エンティティ (Entity)

AI は一意の識別子を持つ業務オブジェクトを認識し、エンティティクラスと ID 属性を生成する

値オブジェクト (Value Object)

AI は不変の値型を識別し、値オブジェクトクラスと検証ロジックを生成する

アグリゲートルート (Aggregate Root)

AIが集約境界を識別し、集約ルートクラスとビジネスルールを生成する

ADD (Agent-Driven Development)

Agent-Driven Development は、複数の AI Agent が協調して開発タスクを完了する新しい開発パラダイムです。

Plan-Execute-Evaluate サイクル

Plan

計画段階

アーキテクト Agent が要件を分析し、開発計画を策定し、タスクを分解する

Execute

実行段階

コーディング Agent は計画に基づいてコードを生成し、テスト Agent はテストケースを生成する

Evaluate

評価段階

レビューエージェントがコード品質をチェックし、改善提案を行い、反復的に最適化する

マルチエージェント協調パターン

アーキテクト Agent
  • • 要件を分析する
  • • アーキテクチャを設計する
  • • 計画を立てる
コーディング Agent
  • • コードを生成する
  • • 機能を実装する
  • • コード最適化
テスト Agent
  • • テストを生成
  • • テストを実行する
  • • 品質チェック

RAG-DD (RAG-Driven Development)

RAG-Driven Development はプライベート知識ベースを活用して AI のコード生成能力を強化し、AI がチームの知識と経験に基づいてコードを生成できるようにします。

プライベートナレッジベースに基づくコード生成

チームのアーキテクチャ文書、設計パターン、ベストプラクティスなどの知識をナレッジベース化し、AI がコード生成時にその知識を参照できるようにする。

ナレッジベースの内容
  • アーキテクチャ設計文書と設計パターン
  • コード規約とベストプラクティス
  • 過去のプロジェクト経験と教訓
  • チームの技術スタックとツールチェーン
ワークフロー
1. ユーザーが要件を提示する
2. RAG システムで関連知識を検索する
3. AI は検索された知識に基づいてコードを生成する
4. 生成されたコードがチームのアーキテクチャと規約に準拠している

アーキテクチャドキュメントがコンテキストである

アーキテクチャ文書を RAG システムの中核コンテキストとして使用し、生成されるコードがアーキテクチャ設計に準拠するようにします。

アーキテクチャドキュメントの種類
  • • システムアーキテクチャ図と技術選定ドキュメント
  • • API 設計規約とインターフェース文書
  • • データベース設計とデータモデル
  • • マイクロサービスの分割とサービス境界
  • • セキュリティ規範と権限モデル
利点
  • 生成されたコードは自動的にアーキテクチャ設計に準拠する
  • アーキテクチャの逸脱とリファクタリングコストを削減する
  • 新メンバーがアーキテクチャをすばやく理解し、規約に沿ったコードを生成できる

学習成果

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

  • 1TDD 2.0 の核心思想を理解し、AI を使ってテスト駆動開発を加速できる
  • 2DDD with AI の動作原理を理解し、AI を活用してドメインモデリングを支援できる
  • 3Agent-Driven Development のマルチエージェント協調パターンを習得する
  • 4RAG-Driven Development の価値を理解し、プライベート知識ベースを構築できる
  • 5プロジェクトの特性に応じて適切な AI ネイティブ開発モードを選択できる