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

エラーモデリング(例外境界 / Result型 / 分類) 25章アウトライン📚✨(各章:ねらい / 内容 / ミニ演習 / AI活用)

最終的に、受講者がこれを作れる状態にするよ😊

  • エラー分類表(ドメイン / インフラ / バグ)📋
  • エラーカタログ(命名・コード・表示文言)🏷️
  • Result型で「想定内の失敗」を扱える🎁
  • 例外境界で例外をキャッチして変換できる🚪
  • ✅ APIは ProblemDetails(RFC9457) で返せる🧾
  • ログ方針+相関ID で追える🔎🧵
  • ✅ リトライ/タイムアウト/キャンセルの基本判断ができる⏳🔁🛑

第1章:エラーモデリングって何?なぜ必要?🤔🌱

  • ねらい:エラーを「仕様」として扱う感覚をつかむ
  • 内容:例外地獄あるある/“怖くない設計”の入口
  • 演習:失敗例(握りつぶし・原因不明)を見つけて言語化📝
  • AI活用:失敗例のパターンを箇条書きにしてもらう🤖

第2章:2026環境の準備(Windows + VS)🪟🛠️

  • ねらい:すぐ試せる土台を作る
  • 内容:Visual Studio 2026 / .NET 10 / C# 14 の想定、AI拡張の使い方ルール (Microsoft Learn)
  • 演習:Consoleアプリ+最小のWeb APIどっちも作って動かす🔧
  • AI活用:Copilotに「雛形生成」→自分で読み解く👀

第3章:例外の基礎復習(C#)🧯

  • ねらい:例外の仕組みを最低限理解
  • 内容:try/catch/finally/stack traceの意味
  • 演習:わざと例外を起こして、どこから来たか追う🔍
  • AI活用:「この例外の原因候補は?」と質問テンプレ作る🧠

第4章:例外の“やっちゃダメ集”🙅‍♀️💥

  • ねらい:事故りやすい書き方を避ける
  • 内容:握りつぶし/広すぎcatch/情報欠落throw
  • 演習:悪い例を“改善案”に直す✍️
  • AI活用:リファクタ案を出してもらい、理由を自分で説明🙂

第5章:「想定内の失敗」と「想定外の異常」を分ける🚦

  • ねらい:ここが全ての出発点!
  • 内容:入力ミス=想定内/不変条件違反=想定外 など
  • 演習:例を20個分類(想定内/想定外)📌
  • AI活用:分類の迷いどころを相談して判断軸を固める🤝

第6章:エラー分類の全体像(3分類)🧩

  • ねらい:迷ったら戻る“地図”を持つ
  • 内容:ドメイン/インフラ/バグ(不変条件違反)
  • 演習:自分の作ったアプリ想定で分類表の雛形を作成📋
  • AI活用:「この失敗はどれ?」を会話で訓練🤖

第7章:ドメインエラー入門(業務ルール違反)💗

  • ねらい:ユーザーに優しい失敗を設計できる
  • 内容:例)在庫不足、期限切れ、予算超え
  • 演習:ドメインエラーを10個作って命名する🏷️
  • AI活用:命名案を10個出してもらい“分かりやすい”を選ぶ✨

第8章:インフラエラー入門(DB/ネット/外部API)🌩️

  • ねらい:運用で起きる失敗を怖がらない
  • 内容:一時的(Transient)/ 恒久的(Permanent)という感覚
  • 演習:リトライしていい/だめ を判断して表にする🔁
  • AI活用:代表的な失敗パターンの網羅チェック✅

第9章:バグ(不変条件違反)とFail Fast⚡🧱

  • ねらい:“ここに来たらおかしい”を明確にする
  • 内容:例外の役割(バグを早く発見)/ユーザー表示とログの分離
  • 演習:「不変条件」を3つ決めて“破ったらどうする?”を書く📝
  • AI活用:不変条件の候補を洗い出してもらう🔎

第10章:例外境界(Exception Boundary)ってなに?🚪

  • ねらい:例外をどこまで通すか決められる
  • 内容:内側(ドメイン)を守る/外側(UI/API)でまとめて処理
  • 演習:層の図を描いて「境界」を線で引く🖊️
  • AI活用:あなたの構造案にツッコミ役をさせる😆

第11章:境界の実例①(アプリ層→ドメイン→インフラ)🏗️

  • ねらい:境界の置き場所を体で覚える
  • 内容:Repository/Clientなど“外部I/O”を端に押し出す
  • 演習:インフラ呼び出しを1枚アダプタに隔離する🧱
  • AI活用:差し替え(fake)案を出してもらう🧪

第12章:境界の実例②(例外→分類→Resultへ変換)🔁🧯

  • ねらい:例外を“握りつぶさず”変換できる
  • 内容:例外を分類してインフラエラーとして返す方針
  • 演習:catchした例外を「再試行可/不可」まで分類🚦
  • AI活用:例外メッセージの要約とログ情報案を作らせる📜

第13章:エラーカタログを作ろう(一覧で管理)📚🏷️

  • ねらい:エラーを“散らさない”
  • 内容:エラーコード/表示文言/開発者向け詳細/推奨アクション
  • 演習:Excel/Markdownで「エラー台帳」作成📋
  • AI活用:抜け漏れチェック担当にする✅

第14章:エラー型の実装(recordで表す)🧷✨

  • ねらい:ドメインエラーを型として表現できる
  • 内容:record を使う理由(不変・比較しやすい・テストしやすい)
  • 演習:エラー型を3種類作ってswitchで分岐🔀
  • AI活用:型名・フィールド名の改善提案をもらう🧠

第15章:Result型の考え方(成功/失敗の箱)🎁✅❌

  • ねらい:想定内の失敗を戻り値で扱う感覚
  • 内容:例外に頼らない設計が読みやすくなる場面
  • 演習:入力チェックを例外→Resultへ置き換える🔁
  • AI活用:「例外が要る/要らない」を判断させて比較する⚖️

第16章:Resultを“最小構成”で作る🧰

  • ねらい:仕組みが理解できる(ライブラリ丸投げしない)
  • 内容:IsSuccess / Value / Error の最小セット
  • 演習:Resultのユニットテストを少し書く🧪
  • AI活用:テストケースの候補出しに使う🧑‍🏫🤖

第17章:Resultの中身設計(どの情報を持たせる?)🧾🧠

  • ねらい:運用・UXにつながる情報設計
  • 内容:code/message/detail/retryable/action みたいな設計
  • 演習:同じエラーでも「表示用」「ログ用」を分ける設計を書く📝
  • AI活用:文言の“やさしい言い換え”を出してもらう💬

第18章:Resultの扱い方(switch/Matchの感覚)🔀✨

  • ねらい:呼び出し側が読みやすくなる
  • 内容:成功だけ先へ/失敗はその場で返す
  • 演習:Resultを受け取ってUI表示メッセージを決める🪞
  • AI活用:分岐の整理(重複削減)案をもらう🧹

第19章:Resultの伝播(つなぐ・早期return)⛓️🛑

  • ねらい:“失敗したら先に進まない”を自然に書ける
  • 内容:ネスト地獄を避ける書き方の型
  • 演習:3ステップ処理(検証→保存→通知)をResultでつなぐ🧩
  • AI活用:読みやすさレビュー役をさせる👀

第20章:インフラで例外が出たときの方針(変換ルール)🧯➡️🎁

  • ねらい:I/O層の例外を“仕様化”して上に渡す
  • 内容:例外→インフラエラーResult/ログの粒度
  • 演習:DB/HTTP失敗を「ユーザー表示」「ログ」へ分配する🧠
  • AI活用:例外種別の代表例を列挙させて漏れ確認✅

第21章:APIエラー設計① HTTPステータスの決め方🚦🌐

  • ねらい:APIの失敗を仕様として揃える
  • 内容:400/404/409/500 などの基本方針
  • 演習:エラーカタログの各項目にステータスを割り当てる📌
  • AI活用:割り当て理由の文章を整えてもらう✍️

第22章:APIエラー設計② ProblemDetails(RFC 9457)🧾✨

  • ねらい:クライアントが扱いやすい標準形式で返せる
  • 内容:RFC 9457(RFC7807を置き換え)/拡張フィールドの考え方 (RFCエディタ)
  • 演習:Result→ProblemDetails変換マップを作る🗺️
  • AI活用:ProblemDetailsのフィールド案(type/title/detail等)を相談🤖

第23章:UIエラー設計(ユーザーにやさしく)🫶🎀

  • ねらい:表示すべき/隠すべき情報を区別できる
  • 内容:入力エラー(項目別)/インフラ障害(再試行誘導)
  • 演習:同じエラーを「画面用」と「ログ用」に書き分ける📝
  • AI活用:文言を“優しい日本語”に整える💬✨

第24章:ログ設計① 何を残す?(構造化ログ)🔎🧾

  • ねらい:後から原因に辿りつけるログにする
  • 内容:ドメインエラーは“期待通りの失敗”として記録/例外は詳細も
  • 演習:ログ方針(レベル・項目・例外の扱い)を1枚にまとめる📄
  • AI活用:ログ項目のチェックリストを作らせる✅

第25章:ログ設計② 相関ID+レジリエンス+ミニ総合演習🧵⏳🎓

  • ねらい:実戦っぽく“追える&耐える”を体験する

  • 内容:

    • 相関IDで「1リクエストを追跡」🧵
    • タイムアウト/キャンセルの基本(“待ちすぎない”)⏳🛑
    • リトライの基本(やっていい条件・冪等性の超入門)🔁
  • 演習(ミニプロジェクト):

    • 題材:推し活グッズ購入管理🛍️💖(在庫・予算・購入)
    • 成果物:分類表📋→エラーカタログ🏷️→Result🎁→API ProblemDetails🧾→ログ+相関ID🔎🧵
  • AI活用:抜け漏れレビュー+テストケース候補出し🧪🤖


ちょい補足(学びやすくするコツ)🍵😊

  • 章ごとに 「成果物(1枚)」 を必ず作ると、途中で迷子にならないよ📄✨
  • AIは「案出し・命名・漏れチェック」に使うのが安全で強い🤝🤖 (判断の最終決定は自分がやるのが大事だよ〜🙂)

次は、もしよければこの25章に対して **「各章の所要時間」「授業の台本っぽい進め方」「演習の具体例(題材コード)」**までセットにして、教材として“そのまま使える形”に整えるよ〜😊📚✨