メインコンテンツまでスキップ

レイヤードアーキテクチャ:詳細アウトライン(全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プロンプト例🤖✨(レビュー用/リファクタ用)