第01章:このコースのゴールと進め方🎒✨
この章でわかること🎯
- この36章コースを終えると「何ができるようになるか」✨
- 学び方の“型”(迷子にならない手順)🧭
- よくある挫折ポイントと、先回りの回避策🛟
- ミニ演習:身近な題材を「出来事(イベント)」で書き出す📝
- AIを“学習ブースター”として使うやり方🤖💡
まずゴールを1枚で掴む🗺️✨

そもそもイベントソーシングって?(超ざっくり)🌸
イベントソーシングは、「いまの状態」ではなく「起きた出来事の履歴」を貯めていく考え方だよ📚✨ 状態の変化をイベントとして記録し、そのイベント列を順番に適用して、いつでも状態を作り直せる(=復元できる)イメージ🔁😊
このコースを終えるとできるようになること🏁🎉
- ✅ イベントを“過去形”で命名して、出来事として整理できる⏳
- ✅ **イベント列から状態を復元(Rehydrate)**できる🔁
- ✅ Command → Event の流れを、迷わず型で書ける📮✨
- ✅ 画面や一覧に強い **Projection(読みモデル)**を作れる🔎
- ✅ テスト(Given-When-Then)で、イベントの正しさを守れる🧪🌼
- ✅ 競合(同時更新)や永続化(まずはSQLite)など「実戦の入口」まで触れられる🚪✨
学びの順番(このコースの“型”)🧩✨
イベントソーシングは、順番を間違えると急に難しく感じるやつです😵💫 だからこのコースは、ずーっとこの順番で進むよ👇😊
- 言葉と芯をそろえる(Command / Event / State / Projection)📚
- 最小実装で手を動かす(インメモリEventStore)🧱
- **復元(Rehydrate)**で「なるほど!」を作る🔁
- Command処理の型(Load → Decide → Append)を固める📮✅
- テストの型で安心を作る(Given-When-Then)🧪
- 現実の壁(競合・スナップショット・永続化・運用観測)へ🚧📊
ここで“つまずきポイント”を先に潰す🛟✨
挫折ポイント①:イベント名が決まらない😵
対策:まず“出来事の日本語”でOK🙆♀️✨
- 「商品を追加した」→
ItemAddedToCartみたいに、起きたことを過去形で言うだけで十分だよ⏳🧡 (Microsoft Learn)
挫折ポイント②:「結局DBに状態を保存したほうが早くない?」🤔
短期的にはYESだけど、イベントソーシングは「あとで効いてくる」タイプ💊✨
- 履歴(監査)💼
- 巻き戻し(タイムトラベル)🕰️
- 後から別の読みモデルを作る🔎 みたいな要求に、イベント履歴が効いてくるよ😊 (martinfowler.com)
挫折ポイント③:イベントの粒度がバラバラになる😵💫
対策:最初は“画面のボタン1回=イベント1個”くらいの感覚でOK🎮✨ あとで「大きすぎ/細かすぎ」を調整する章が出てくるから安心してね🧸💛
挫折ポイント④:AIに任せたら、なんか微妙なコードが増える🤖💦
対策:AIは“下書き係”、人間は“編集長”✍️✨
- AI:たたき台、例え話、テスト案、レビュー観点
- 人:命名、境界、ルール(不変条件)、最終判断 この役割分担にすると、学習がめちゃ進むよ🚀💕
この章のミニ演習:身近な例を「出来事」で書き出す📝✨
お題(どれか1つ選んでね)🍀
- 🧺 買い物カート
- 💰 家計簿
- ✅ ToDo
- 🎟️ 予約(美容室・映画など)
ルール(超かんたん)📏😊
- イベントは 「起きたこと」だけを書く
- 形は 過去形(〜した、〜された)にする
- **意図(したい)**じゃなくて **事実(した)**ね✨
手順(5分)⏱️🌸
- その世界で「よく起きる出来事」を10個書く📝
- その中から「大事そう」な3つを選ぶ🎯
- 各イベントに「最低限入れたい情報(payload)」を3つ書く🍱
ミニ演習のサンプル(買い物カート🧺)✨
イベント候補(10個の例)📝
- 商品がカートに追加された➕
- 商品がカートから削除された➖
- 商品の数量が変更された🔢
- クーポンが適用された🏷️
- クーポンが解除された🧾
- カートが作成された🆕
- カートが空にされた🧹
- 配送先が設定された📦
- 支払い方法が設定された💳
- 注文が確定された✅
まずは3つに絞る🎯
- カートが作成された🆕
- 商品がカートに追加された➕
- 商品がカートから削除された➖
payload(最低限の情報🍱)
- カートが作成された:
cartId/createdAt/customerId - 商品が追加された:
cartId/productId/quantity - 商品が削除された:
cartId/productId/removedAt
この“雑でいいから形にする”が、イベントソーシング学習の最強ムーブだよ💪✨
AI活用:この章で使うプロンプト雛形🤖✨
① 例え話を3パターン作る(理解が一気にラクになる)🌈
- ねらい:イベントソーシングの感覚を“日常の比喩”で掴む🧠✨
イベントソーシングを、プログラミング初心者にもわかるように説明して。
題材は「家計簿」「買い物カート」「ゲームのセーブデータ」の3つで、
それぞれ 5行以内、たとえ話中心、専門用語は最小でお願い。
② イベント候補を作る(ミニ演習の加速)🚀
題材は「(ここに題材を書く)」。
よく起きる出来事(イベント)を過去形で15個提案して。
1行1イベント。重複なし。粒度は「画面の操作1回」くらいで。
③ “意図”と“事実”の混ざりをチェック(地味に効く)🧹
次のリストが「意図(したい)」と「事実(起きた)」のどちらか分類して、
意図っぽいものは「事実のイベント名(過去形)」に言い換えて。
(ここにイベント候補を貼る)
ここまでできたらOKチェック✅✨
- 「出来事(イベント)」を10個以上、過去形で書けた📝
- その中から“コアっぽい3つ”に絞れた🎯
- 各イベントにpayloadを3つ書けた🍱
- AIの出力を、そのまま採用せず“編集”できた✍️🤖
章末のミニQ&A💬😊
Q. いきなり完璧なイベント名にしないとダメ? A. 全然ダメじゃないよ🙆♀️✨ 最初は「日本語で自然」→「過去形」→「粒度調整」の順でOK🎒
Q. イベントソーシングって、クラウドやキューが必須? A. このコースでは、まず“仕組み理解”が最優先😊 イベントは「追加専用ストアに順番に保存する」が核なので、最初はインメモリでも十分わかるよ📦✨ (Microsoft Learn)
次章の予告📘🌸
次は「イベントソーシングって何?」を、状態保存との違いで超やさしく整理するよ😊🔁