モジュラーモノリス教材アウトライン(全30章)🧩✨
対象:TypeScript初級〜中級/設計は超入門/モジュラーモノリス初めて👩🎓💕
1章:ようこそモジュラーモノリスへ🌱🧩
- モノリス/マイクロサービスとの違いを超ざっくり
- “分ける”って何が嬉しいの?(未来の自分が助かる話)
- ゴール:30章後にできること🎯
2章:題材アプリを決めよう🎒📱
- 例:学内イベント管理📅、サークル会計💰、フリマ🛍️
- 要件を「10行」にする(AIで要約)🤖📝
- “境界が作れそうな題材”の選び方
3章:Windowsでの開発準備(Node/TypeScript)🪟⚙️
- Node.js と npm の役割
- TypeScriptのコンパイルの流れ
- 動作確認:Hello TS ✅
4章:VS Codeの基本セット(拡張+快適化)🧰✨
- 必須:ESLint / Formatter系
- よくあるハマりポイント回避😵💫
- 保存時整形でストレス減😊
5章:AI拡張の使い方の“型”🤖💡
- Copilot / Codex系を前提にした進め方
- AIに任せてOK/ダメの線引き⚖️
- 便利プロンプト例(設計相談・レビュー・テスト観点)📝
6章:設計の超基礎「関心の分離」🍱
- UI/業務/DB/外部I/Oを混ぜると地獄😱
- 分離のイメージ(中心と外側)
- ミニ演習:混ざったコードの“困る点”を言語化🗣️
7章:モジュラーモノリスの基本思想🎯🧱
- デプロイは1つ、内部はモジュールで厳密に
- “境界”はルールで守る(気合い禁止🙅♀️)
- よくある失敗パターンも先に知る👀
8章:モジュールって何?(粒度の決め方)🧩📏
- 小さすぎ/大きすぎ問題
- 目安:「変更理由」で切る✂️
- AIで境界候補をブレスト🤝🤖
9章:境界づけられたコンテキスト超入門🧱🗺️
- 同じ言葉でも意味が違う例(ユーザー等)
- “境界で意味を固定する”
- ミニ演習:題材アプリの用語を整理📖
10章:フォルダ構成で迷子を防ぐ📁🧭
modules/を中心に置く考え方- 1モジュールの中の基本構造
- 命名ルールのテンプレ化🧾
11章:モジュールの公開API(入口)を作る🚪✨
- 外から触っていいものだけ出す
index.tsの役割- “内部は触らせない”が基本🛡️
12章:内部を隠す(カプセル化の作法)🙈🔒
- internalフォルダ/private設計の感覚
- “便利だから直import”を封じる
- ミニ演習:外から内部に触ろうとして失敗させる🚫
13章:依存関係ルール(Dependency Rule)を決める➡️📜
- どこがどこを参照していいか
- ルールは文章化してチーム(未来の自分)に渡す📝
- 禁止例の具体(内部import、循環依存)😱
14章:TypeScriptで境界を守る①(公開面だけ参照)🧠✅
- “公開APIだけimportする”習慣化
- 例:
modules/x/index.tsだけ触る - 演習:内部ファイル参照を排除✂️
15章:TypeScriptで境界を守る②(設定で縛る)🧰🔧
- tsconfig/eslint等で縛る方向性
- “人間の注意力に頼らない”
- 演習:違反したらエラーになる状態へ👮♀️
16章:TypeScriptで境界を守る③(CIで取り締まる)🧪👮
- チェックは自動化が正義✨
- PRで壊させない流れ
- AIで「違反例」を作って試す😈🤖
17章:レイヤー(層)を薄く入れる🥞
- Presentation / Application / Domain / Infrastructure(超ざっくり)
- “層を跨ぐルール”を決める
- 演習:題材アプリを層に整理🗂️
18章:アプリケーション層(ユースケース)って何?🎬
- 何をする層?(手順の組み立て)
- 薄く保つコツ
- 演習:ユースケースを1つ作る🧾
19章:ドメイン層(ルールの中心)💎
- “業務ルールはここ”
- 値オブジェクトの雰囲気(軽く)
- 演習:金額・日付・名前などをモデル化🧩
20章:モジュール間連携①(同期呼び出し)📞
- 公開API経由で呼ぶ
- DTOは境界用にする
- 演習:別モジュール呼び出しを作る✅
21章:モジュール間連携②(CQSで読み書き分離)🧾🔀
- Command(更新)と Query(参照)
- 混ぜると事故る理由💥
- 演習:混ざった関数を分離✂️
22章:モジュール間連携③(依存の向きを整える)🔄
- “AがBを知りすぎ”を減らす
- インターフェースで距離を取る🧤
- AIで依存図のレビュー🤖👀
23章:DIP入門(抽象に依存する)🔌⬆️
- 下位(DB/HTTP)に引きずられない
- ポート(interface)を切る感覚
- 演習:Repositoryのinterface化🧩
24章:DI入門(newしないで渡す)🎁
- コンストラクタ注入が基本
- “差し替えできる”が嬉しい😊
- 演習:Fake実装に差し替える
25章:テスト差し替え実践(モジュール単位)🧪💚
- “中心ロジックだけ”を素早くテスト
- モック/スタブの使い分け軽く
- AIにテストケース案を出させる🤖🧾
26章:データ所有権(DBは1つでも持ち主を決める)🗄️👑
- テーブルの“担当モジュール”を決める
- 直参照禁止の発想
- 演習:所有権マップを作る🗺️
27章:トランザクション境界と集約の肌感🌰🔒
- 1回で整合する範囲を絞る
- 集約ルート経由で更新
- 演習:“同時に守る整合”を1つ定義📝
28章:不変条件を守る(壊れない状態しか作らない)🛡️✨
- 生成/更新で検証
- “途中で壊れた状態”を作らない
- 演習:不変条件リスト+テスト化✅
29章:共通化の罠(Shared/Utils地獄を回避)🕳️⚠️
- DRYのやりすぎ注意
- 共通化して良いもの/悪いもの
- 演習:共通化ポリシーを作る⚖️
30章:仕上げ(イベント・ACL・ADR・将来の分割)🎉🚀
- ドメインイベントで疎結合📣
- 外部連携はACLで守る🧼
- ADRで意思決定を残す📝
- “必要になったら一部だけサービス化”の方針🧭
- 最終課題:チェックリストで自己採点✅✅✅
必要なら次に、各章に
- ねらい🎯
- 重要キーワード📌
- 章末ミニ課題🧩
- AI用プロンプト例🤖📝 まで付けた「教材としてそのまま使える版」にもできますよ〜☺️✨