第1章:なぜクリーンアーキ?(ゴールを固定)🎯
この章でやることは、たった1つ! 「この講座で“何を守りたい設計”なのか」を先に決め切ることだよ😊📝✨ ここがブレると、途中で「で、結局なにが嬉しいの?🤔」って迷子になりがち…!
0. 2026-01-22 時点の“最新メモ”🆕🗓️(リサーチ結果)
- TypeScript の stable は npm上だと 5.9.3 が “Latest” として公開されてるよ(最終公開は 2025-09-30 表記)。(NPM)
- TypeScript 7(ネイティブ移植)の Preview が npm と VS Code 拡張で提供されてる(
@typescript/native-previewと “TypeScript (Native Preview)” 拡張)。(Microsoft for Developers) - GitHub Copilot は VS Code で Agent mode / Plan(計画) みたいな “自律寄り” 機能の説明が公式ドキュメントにあるよ。(Visual Studio Code)
- OpenAI 側も Codex の IDE 拡張(VS Code) を案内してる(IDEで並走・委任ができる)。(OpenAI Developer)
(※この講座自体は、特定バージョン依存のテクを押すより「設計の考え方」を中心にするから、TSが 6/7 に進んでも芯はそのまま通用するよ☺️)
1. 今日の到達目標(ここまでできたら勝ち🎉)
この章のゴールはこれ👇
- ✅ 「クリーンアーキで得たい成果」を3つ、自分の言葉で書ける
- ✅ “やらないこと”(過剰設計の予防線)も書ける
- ✅ これから45章進んでも迷子にならない “設計ゴール1枚メモ” ができる📝✨

2. そもそも、なぜクリーンアーキ?🤔💭
作り始めは、だいたいこうなるよね👇
- 最初:タスク追加できた!🎉
- 1週間後:完了機能つけよ〜✅
- さらに:一覧、絞り込み、並び替え…📌
- さらに:保存したい(最初はメモリ→次はDB)💾
- さらに:画面を変えたい(CLI→Web、React…)🖥️🌐
- さらに:テスト書きたい(でも書きにくい…😇)🧪
この「あとから増える現実」に強くなりたい、がクリーンアーキの出番だよ🏛️✨
3. クリーンアーキの核心は「依存の向き」⬅️💘
クリーンアーキで一番大事なのは、層の名前を暗記することじゃないよ🙅♀️ “内側が外側を知らない” っていうルール(Dependency Rule)が核!🔥
- 内側(アプリの目的・ルール)が、 外側(UI、DB、フレームワーク、外部API)に引っ張られない
- だから、外側を差し替えても、中心が壊れにくい✨
この考え方は、提唱者のUncle Bob(Robert C. Martin)も「依存は内向きだけ」って形で説明してるよ。(blog.cleancoder.com)
4. でも!第1章でやるのは「層分け」じゃない🙅♀️🧩
いきなりフォルダを4層に分け始めると、だいたい失敗する😇 理由はシンプル👇
「勝ち条件(ゴール)が決まってないのに、手段(層)を作る」 → なんとなく分けただけの“儀式アーキ”になりがち💀
だからこの章は、先にゴールを固定するよ🎯✨ 層は次章以降でちゃんとやるから安心してね😊
5. この講座(ミニTaskアプリ)の“未来の変化”を先に想像しよ🔮🗒️
クリーンアーキの価値って、だいたい「変更が来たとき」に出るのね💡 だから、最初から“ありそうな変更”を並べちゃうのがコツ!
例👇(この講座の題材だと特に起きがち)
- UIが変わる(CLIっぽい→Web UI、デザイン変更)🎨
- 保存先が変わる(メモリ→SQLite→クラウドDB)💾➡️☁️
- IDの作り方が変わる(連番→UUID)🆔
- 時刻が絡む(作成日時、期限、ソート)⏰
- エラーの見せ方が変わる(画面表示・ログ・APIレスポンス)⚠️
この「変わりそうな場所」を 中心から遠ざける のが基本戦略だよ🏹✨
6. “設計ゴール1枚メモ”を作ろう📝✨(テンプレ付き)
ここから手を動かすよ〜!✋😊
まず docs/architecture-goals.md みたいなファイルを作って、下をコピペして埋めていこ💨
## 設計ゴール1枚メモ(Clean Architecture / Mini Task)
## 🎯 1) このアプリで「絶対に守りたいもの」(中心)
- (例)Taskを作る/完了する/一覧する、という目的
- (例)Taskのルール(タイトル空はダメ、など)
- (例)UseCaseは「やりたいこと」を表現する
## 🔁 2) 「変わってOK」なもの(外側)
- (例)UIの見た目・フレームワーク
- (例)保存方法(メモリ/DB)
- (例)ログ出力や設定ファイル
## ✅ 3) “良い状態”の判定方法(測り方)
- (例)DBを差し替えてもUseCaseのコードは変更ゼロ
- (例)UseCaseはテストで数秒で検証できる
- (例)中心にHTTP/SQLの言葉が入ってこない
## 🧯 4) 今は「やらないこと」(過剰設計ストッパー)
- (例)最初からDIコンテナ導入しない
- (例)Repositoryを巨大にしない
- (例)将来のために抽象を増やしすぎない
## 🤖 5) AIに手伝ってもらうポイント
- (例)ゴールの文章を短く整える
- (例)変わりそうな場所の洗い出し
- (例)“抽象すぎる表現”の指摘
(このテンプレ、あとで章が進んでも「迷ったら戻る場所」になるよ📍✨)
7. サンプル:この講座の“ゴール例”💡(参考)
あなたのメモを書くときのヒントとして、例を置いとくね😊
-
🎯 守りたい中心
- Taskの作成・完了・一覧という目的(UseCase)
- Taskのルール(例:タイトルは空NG、完了の二重操作NG…)
-
🔁 変わってOK
- UI(WebでもCLIでもどっちでもいい)
- 保存(メモリ→SQLiteへいつか変える)
-
✅ 測り方
- 保存を差し替えても、UseCaseのテストがそのまま通る🧪✨
- 中心のコードに SQL 文や HTTP ステータスが出てこない
-
🧯 やらないこと
- いきなり難しい設計パターンを盛らない(まず最小!)
8. AI相棒の使い方(この章での“勝ちムーブ”🤖✨)
この章はコード生成より、言語化サポートが強いよ💪📝
8.1 ゴールを「3行」に圧縮してもらう🪄
(Copilot Chat / Codex / どれでもOK)
このメモを、初心者にも伝わるように「3行」で要約して。
抽象的すぎる言葉(例:いい感じ、保守性)を具体化して。
※“抽象ワードを具体にする”が超重要!✨
8.2 変化シナリオを追加で出してもらう🔮
このTaskアプリに「あとから起こりがちな仕様変更」を10個出して。
そして、それぞれが「中心を壊しやすいか」を3段階で評価して。
(これで“守るべき場所”がクッキリするよ👀)
8.3 計画モードで「次章までの道筋」を作る🗺️
VS Code の Copilot には、タスクを進めるための 計画(Plan) の考え方が公式ドキュメントにあるよ。(Visual Studio Code) 「次に何する?」が不安なときに便利☺️
9. よくある失敗と回避法(先に潰す💣➡️🧯)
失敗①:「変更に強い」だけ書いて終わる😇
回避:何が変わるかを最低3つ書く(UI/保存/エラー…みたいに)🔁
失敗②:「4層に分ける」がゴールになる🙃
回避:「層は手段」ってメモに書いとく📝✨
失敗③:将来が怖くて抽象を増やしすぎる🌀
回避:「今はやらないこと」を必ず書く🧯 (“増やさない勇気”が勝つ✌️)
10. 理解チェック(1問)✅🧠
Q. クリーンアーキの“勝ち”って、結局なに?(1つ選んでね)
A) フォルダが4層に分かれてる B) 依存の向きが内側に揃ってて、外側を差し替えやすい C) DIコンテナが入ってる
→ 正解:B ✅ (AとCは“手段”であって、勝ち条件じゃないよ☺️)
11. この章の提出物📦✨
-
✅
docs/architecture-goals.md(あなたの言葉でOK!)- 「守りたい中心」3つ
- 「変わってOK」3つ
- 「測り方」3つ
- 「やらないこと」3つ
これができたら第1章クリア🎉✨
12. 次章予告👀✨
次は 「4つの円(4層)の役割」 を、短い言葉で迷わず言えるようにするよ🟡🟠🔵⚫ 今日作った“ゴールメモ”が、次章でめちゃ効いてくるからね😊💕