🎯 AI 駆動開発の前に知っておくべきこと
AI コーディングツール(Claude Code 等)は強力ですが、 開発の基礎が曖昧なまま使うと、品質の低いコードを高速に量産するだけ になります。
AI に的確な指示を出し、生成されたコードの良し悪しを判断するには、開発者自身がソフトウェア設計の原則を理解している必要があります。
本シリーズは、AI 駆動開発の精度を高めるための 予備知識 として、以下のテーマを体系的に解説します。
🧱 各テーマの位置づけ
オブジェクト指向
└→ なぜ階層(プロジェクト)を分けるのか
ドメイン層 / アプリケーション層 / インフラストラクチャ層 / インターフェース層
DDD(ドメイン駆動設計)
└→ ビジネスの言葉でコードを書く設計手法
SOLID 原則 / Bounded Context / ユビキタス言語
TDD(テスト駆動開発)
└→ テストを先に書くことで設計を磨く
アトミックデザイン
└→ UI コンポーネントの分類・再利用戦略
モノレポ
└→ 複数サービスを 1 リポジトリで管理する運用戦略
📐 なぜこの順番なのか
| 順番 | テーマ | 理由 |
|---|---|---|
| 1 | オブジェクト指向 | すべての設計原則の土台。階層分離の考え方がないと DDD も TDD も理解できない |
| 2 | DDD | ビジネスロジックの設計手法。AI に「何を作るか」を正確に伝える力 |
| 3 | TDD | 設計の品質を検証する手法。AI が生成したコードを信頼できるかの判断基準 |
| 4 | アトミックデザイン | UI の設計原則。フロントエンド開発で AI との協働を効率化する |
| 5 | モノレポ | 複数サービスを扱う運用戦略。AI が参照するコンテキストの管理に直結する |
下から始めると、なぜそうするのかが分からないまま手法だけを覚えることになります。 上から順に積み上げる ことで、各手法の必然性が理解できます。
🤖 AI 駆動開発との関係
これらの知識があると、AI との協働で以下が変わります。
| 知識 | AI への指示 | 結果 |
|---|---|---|
| オブジェクト指向がわかる | 「ドメイン層とインフラ層を分離して」と指示できる | 保守しやすいコード |
| DDD がわかる | 「ユビキタス言語に合わせて」と指示できる | ビジネスと一致したコード |
| TDD がわかる | 「テストを先に書いて」と指示できる | 仕様通りのコード |
| アトミックデザインがわかる | 「Atom / Molecule で分けて」と指示できる | 再利用可能な UI |
| モノレポがわかる | 共有ライブラリの変更影響を把握できる | 安全なリファクタリング |
AI は道具であり、使い手の設計力がそのまま成果物の品質に反映されます。
📚 シリーズ記事
| # | タイトル | 内容 |
|---|---|---|
| 1 | 概要 (本記事) | シリーズの全体像と各テーマの位置づけ |
| 2 | オブジェクト指向編(公開予定) | 階層分離(ドメイン / アプリケーション / インフラ / インターフェース) |
| 3 | DDD 編(公開予定) | SOLID 原則・Bounded Context・ユビキタス言語 |
| 4 | TDD 編(公開予定) | テスト駆動開発の実践・テスト網羅性 |
| 5 | アトミックデザイン編(公開予定) | UI コンポーネントの分類と設計 |
| 6 | モノレポ編(公開予定) | 単一リポジトリでの複数サービス管理 |