レイヤードアーキテクチャ:詳細アウトライン(全20章)🏗️✨
前提:C#初級〜中級/設計ほぼ初めて/Windows/Visual Studio中心(VS Codeも補足OK)/CopilotやCodex等AI導入済み🤖💡
第1章:レイヤードってなに?🌈(まずは感覚)
- レイヤード=「役割が違うものを混ぜない」🧹
- 何が嬉しい?(変更に強い/読みやすい/テストしやすい)😊
- よくある事故:神クラス・神メソッド😇
第2章:4層モデルの全体像🧱(地図を持つ)
- Presentation / Application / Domain / Infrastructure の役割
- それぞれが “何を持つ/持たない” をざっくり決める✋
- 層の境界=責任の境界🚪
第3章:依存の向きルール➡️(これが最重要)
- 上位→下位に依存(逆はNG)🙅♀️
- 「参照できる/できない」のルールを先に固定✅
- ルール違反が起きる典型パターン💥
第4章:題材決め&最小要件(YAGNIでいく)🌱
- 例:ToDo / 家計簿 / 蔵書管理📚(どれでもOK)
- “機能を増やしすぎない” 練習✨
- 章を通して同じ題材を育てる方針にする🪴
第5章:Visual Studioでソリューション構成を作る🧰
- プロジェクト分割:
*.Presentation / *.Application / *.Domain / *.Infrastructure - 参照設定(どれがどれを参照OK?)🔗
- ここで “依存ルール” を実際に固める✅
第6章:Presentation層入門🎨(UIは薄く)
- UIの責任:入力を受けて呼ぶだけ📞
- 画面都合をDomainへ持ち込まない🙅♀️
- “薄いController/Handler” を目指す✨
第7章:Application層入門🎮(ユースケースの置き場)
- Application層=「手順書」📋
- UseCase/Serviceの責任:順番・調整・境界の管理
- “Domainのルール” はApplicationに入れない⚠️
第8章:Domain層入門①💎(モデルとルール)
- Entity / ValueObject を超やさしく理解😊
- ルールはDomainに寄せる理由✨
- “無効な状態を作らない” を体験🔒
第9章:Domain層入門②🧠(振る舞いを持たせる)
- 貧血モデル(ただのDTO)にならない工夫🥲
- メソッドにルールを入れる感覚
- “データ+ルール=ドメイン” を掴む✊
第10章:DTOと境界変換📦(画面の形をDomainに入れない)
- UI用DTO/API用DTOとDomainモデルは別物
- 変換(Mapping)をどこに置く?🧩
- 変換が増えたときの整理術🧹
第11章:Infrastructure層の考え方🚪(外側に押し出す)
- DB・HTTP・ファイル=“詳細” は外側へ📦
- 「変わりやすいものは端っこに」🧊
- ここでは概念中心でOK(具体は次章へ)😊
第12章:DBアクセスの置き方(Infrastructure実例)🗄️
- “どこに書く?”問題を整理
- Repository実装の足場になる
- まずは小さく「読み書き」だけでOK👌
第13章:Repository入門💾(保存の窓口)
- Repository=保存のインターフェース✨
- Domain/Applicationから見た「保存」って何?
- “保存方法を隠す” のが価値🎯
第14章:Repositoryの置き場所&参照ルール🔗(事故防止回)
- interfaceはどこ?実装はどこ?📍
- “参照方向が逆転する事故” を防ぐ🚫
- ルールを守った依存関係にする✅
第15章:DI入門🧩(newしない世界へ)
- 「中でnewしない」ってどういうこと?😊
- コンストラクタ注入の基本✨
- テストで差し替えできる嬉しさ🎁
第16章:DI実践①(Composition Rootの考え方)🏗️
- 依存を組み立てる場所を1つに集約
- Program起点で組み立てるイメージ
- “どこで注入する?”が迷わなくなる😊
第17章:DI実践②(ライフサイクルは最低限)⏳
- Singleton / Scoped / Transient の超入門
- 初心者がハマるポイント(使い回し事故)💥
- まずのおすすめ運用ルール✅
第18章:エラー設計①⚠️(境界で握る・変換する)
- Domainエラー/アプリ都合/インフラ都合を分ける
- 「どこで例外を捕まえる?」問題
- UIに返す形を整える📮
第19章:テスト設計🧪(層分けのご褒美)
- Domainのユニットテストが一番おいしい🍰
- Applicationはモックで試しやすい
- 統合テストは “最低限の線” を引く✍️
第20章:AI前提の学び方&運用🤖💡(教材の仕上げ)
- Copilot/Codexに「レイヤー違反チェック」させる✅
- “設計レビュー相棒”として使うコツ👯♀️
- 変更時にAIに聞くテンプレ:「どの層が変わる?」🧠
付録(各章に毎回入れると強いおまけ)🎀
- 章末チェックリスト✅(層違反してない?)
- よくある質問Q&A🙋♀️
- AIプロンプト例🤖✨(レビュー用/リファクタ用)