SoC(関心の分離)教育コンテンツ:TypeScript版アウトライン(全17章)🧠🧩✨
第1章:SoCってなに?30秒でつかむ超入門🎀
- SoC=「変更理由が違うものは混ぜない」🧁
- “混ぜると事故る”の直感例(UI・ルール・通信がごちゃ混ぜ😇)
- この教材のゴール(見抜く→直す→保つ)✅✨
第2章:なぜ混ぜるとツラいの?“修正が怖いコード”の正体😵💫💥
- 仕様変更・UI変更・API変更が連鎖する🌊
- バグの居場所が分からない問題🔍
- 影響範囲(blast radius)を小さくする考え方💡
第3章:SoCとSOLID(特にSRP)をやさしくつなぐ🧩💖
- SRP=責務=変更理由📌
- SoCはSRPの“現場でのやり方”
- ミニ練習:「これはどの関心?」仕分け🎮
第4章:TypeScriptの世界の“関心”を棚卸ししよう🧺✨
- UI🖥️/状態管理🧠/業務ルール📏/通信🌐/永続化🗄️/ログ📈
- フロントでもバックでも共通の分け方🙆♀️
- “関心リスト”を作るワーク📝
第5章:Windows+VS Codeの最小セットを整える🪟🛠️
- VS Code拡張(TS、Lint、Test、AI補助)🧰
- npmスクリプトで「迷わない実行」🏃♀️
- “詰まりポイント”回避メモ(PATH・権限・改行など)😇
第6章:プロジェクトの最小フォルダ設計(サイトの骨格)📁🏗️
- まずは軽い3〜4フォルダでOK🍰
- “公開API”を決める(exportのルール)🚪
- 循環参照を起こさない配置のコツ🌀🙅♀️
第7章:最強の第一歩!「純粋な処理」と「副作用」を分ける🧼⚡
- 純粋関数=テストしやすい神パーツ✨
- 副作用=通信・DB・ファイル・時刻など🌐🕒
- ミニ演習:1つの関数を「計算」と「I/O」に分割✂️
第8章:モジュール分割(ファイル境界)でSoCを作る🏠📦
- 1ファイル1責務の感覚
- util地獄を避ける(“便利箱”の罠)📦💥
- index.tsで“表の顔”を作る(バレル運用は慎重に)🙂
第9章:ライトな3層設計(UI / Application / Domain)🍰✨
- UI:表示と入力だけ🖥️
- Application:流れ(ユースケース)🧭
- Domain:ルール(変更に強い中心)🛡️
- 置き場迷子を防ぐチェック表✅
第10章:型で境界を守る(ドメイン型の作り方)🧠🛡️
- string乱用で事故る例(ID、金額、日付)💥
- “型で禁止する”って最強💪
- ミニ演習:入力→検証→ドメイン型に変換してから使う🔄
第11章:DTOとドメインを混ぜない(変換の設計)📦🔁
- APIの形(DTO)と業務の形(Domain)は違ってOK🙆♀️
- 変換(mapping)は「境界」に置く🚪
- 欠損・命名違い・単位違いを吸収する考え方🧽✨
第12章:依存の向き(DIPの入口)をSoCで体験🧲🌟
- 業務がライブラリ都合に引きずられないようにする
- “内側(ルール)”を守る構造🛡️
- Ports & Adaptersの超ミニ版🔌
第13章:DIの基本(まずは「渡すだけDI」でOK)💉😊
- newしないで外から渡すだけでも立派なDI✨
- 関数引数DI/コンストラクタDIの超基本
- ミニ演習:fetch部分を引数にして差し替え可能にする🔁
第14章:DIの実践(差し替え設計と境界の保ち方)🔄🧪
- 本番実装 vs テスト用実装の切り替え
- 依存が増えてきた時の整理(Factory/Composition Root)🏗️
- “DIやりすぎ”のサインも知る😵💫
第15章:テスト戦略(SoCがあると楽になる)🧪🌸
- 純粋ロジック:ユニットテストで高速✅
- I/O:薄い結合テストで最低限👌
- “何をどこまでテスト?”の決め方🎯
第16章:ケーススタディ(ごちゃ混ぜ→分離してスッキリ)📚🔥
- テーマ例:学園イベント申込🎓/カフェ注文☕(親しみやすい)
- Before:UIに全部😇 → After:層+境界+型で整理✨
- 段階リファクタ手順(止めずに直す)🔧🌱
第17章:AI導入前提のSoC運用(Copilot/Codex活用+レビュー)🤖✅💖
- AIに「分離案を3案」出させるコツ🎁
- “責務・境界・依存”のレビュー観点チェックリスト🔍
- チーム/個人でSoCを崩さない運用ルール📌✨
- 次の学習ルート(SRP→DIP→クリーン/ヘキサへ)🚀
この17章版をベースに、次はどれを作りますか?😊✨
- 各章を「サイト用の見出し(h2/h3)」まで細分化して、記事化できる目次にする🧱📝
- 第16章のケーススタディを先に作って、最初から体験で覚える教材にする🎮🔥