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が要件を理解しやすくし、テストを生成しやすくする。
- AI は大量のテストケースを素早く生成し、境界条件を網羅できる
- Given-When-Then 形式は、AI がテスト意図を理解しやすくします
- テストケースはドキュメントそのものであり、AI はテストに基づいて実装コードを生成できます
赤・緑・リファクタリングのサイクルを加速する AI メカニズム
テストを書く
AI は要件に基づいてテストケースを生成し、機能を素早く網羅します
実装を書く
AI はテストケースに基づいて最小限の実装を生成し、すばやくテストを通過する
コードを最適化する
AIがコード品質を分析し、リファクタリングの提案を行い、最適化を実行します
実践: AI に先にテストを書かせ、その後実装を書く
DDD (Domain-Driven Design) with AI
ドメイン駆動設計では、ビジネス領域を深く理解する必要があり、AI はドメイン知識をよりよく抽出するのに役立ちます。
AI で統一言語(Ubiquitous Language)を抽出する
共通言語は DDD の核心であり、AI は業務文書からドメイン用語を抽出するのに役立ちます。
- 1.業務文書、要件文書、ユーザーストーリーを入力する
- 2.AI が文書を分析し、ドメイン用語と概念を抽出する
- 3.AI が用語の同義語と関連関係を認識する
- 4.統一された言語辞書を生成し、チーム全体で一貫した用語の使用を確保する
AI 支援による境界づけられたコンテキスト(Bounded Contexts)の区分け
境界づけられたコンテキストは DDD における最も重要な概念であり、AI はコンテキスト境界の識別と分割を支援できます。
- • AI が業務領域を分析し、異なる業務コンテキストを識別する
- • コンテキスト間の依存関係を識別する
- • コンテキストマッピングパターンを識別する(共有カーネル、顧客-サプライヤーなど)
- • AI によるコンテキスト境界の分割案の提案
- • コンテキスト間の統合ポイントを特定する
- • コンテキストマッピング図を生成する
エンティティ/値オブジェクト/集約ルートのコード生成戦略
AI はドメインモデルに基づいて、エンティティ、値オブジェクト、集約ルートのコード構造を自動生成できます。
AI は一意の識別子を持つ業務オブジェクトを認識し、エンティティクラスと ID 属性を生成する
AI は不変の値型を識別し、値オブジェクトクラスと検証ロジックを生成する
AIが集約境界を識別し、集約ルートクラスとビジネスルールを生成する
ADD (Agent-Driven Development)
Agent-Driven Development は、複数の AI Agent が協調して開発タスクを完了する新しい開発パラダイムです。
Plan-Execute-Evaluate サイクル
計画段階
アーキテクト Agent が要件を分析し、開発計画を策定し、タスクを分解する
実行段階
コーディング Agent は計画に基づいてコードを生成し、テスト Agent はテストケースを生成する
評価段階
レビューエージェントがコード品質をチェックし、改善提案を行い、反復的に最適化する
マルチエージェント協調パターン
- • 要件を分析する
- • アーキテクチャを設計する
- • 計画を立てる
- • コードを生成する
- • 機能を実装する
- • コード最適化
- • テストを生成
- • テストを実行する
- • 品質チェック
RAG-DD (RAG-Driven Development)
RAG-Driven Development はプライベート知識ベースを活用して AI のコード生成能力を強化し、AI がチームの知識と経験に基づいてコードを生成できるようにします。
プライベートナレッジベースに基づくコード生成
チームのアーキテクチャ文書、設計パターン、ベストプラクティスなどの知識をナレッジベース化し、AI がコード生成時にその知識を参照できるようにする。
- アーキテクチャ設計文書と設計パターン
- コード規約とベストプラクティス
- 過去のプロジェクト経験と教訓
- チームの技術スタックとツールチェーン
アーキテクチャドキュメントがコンテキストである
アーキテクチャ文書を RAG システムの中核コンテキストとして使用し、生成されるコードがアーキテクチャ設計に準拠するようにします。
- • システムアーキテクチャ図と技術選定ドキュメント
- • API 設計規約とインターフェース文書
- • データベース設計とデータモデル
- • マイクロサービスの分割とサービス境界
- • セキュリティ規範と権限モデル
- 生成されたコードは自動的にアーキテクチャ設計に準拠する
- アーキテクチャの逸脱とリファクタリングコストを削減する
- 新メンバーがアーキテクチャをすばやく理解し、規約に沿ったコードを生成できる
学習成果
この章を終えると、あなたは:
- 1TDD 2.0 の核心思想を理解し、AI を使ってテスト駆動開発を加速できる
- 2DDD with AI の動作原理を理解し、AI を活用してドメインモデリングを支援できる
- 3Agent-Driven Development のマルチエージェント協調パターンを習得する
- 4RAG-Driven Development の価値を理解し、プライベート知識ベースを構築できる
- 5プロジェクトの特性に応じて適切な AI ネイティブ開発モードを選択できる