個人開発者向けのサービスの開発記録 #33 20240218

tyshgc
·

本日の作業

本日はもくもく会180回目。

  • ✅ ドメインイベントについて学習する

    • ✅ ドメインイベントとユースケースの違い

    • ✅ ドメインイベントの抽出方法

    • ✅ サービスブループリントとイベントストーミングの違いと組み合わせ

    • 🚴 zennにまとめる

  • 🚴 分報に関する設計・実装

    • 🚴 Model・Repository実装

    • UseCase Hooksと結合実装

    • Domain EventとPrismaの実装

ドメインイベントについての学習と考察

zennにまとめ中。要点だけ書く。

  • サービスブループリントについておさらい

    • デザイン文脈のフロントとバックステージも含めたフローの可視化できるメソッド。

  • イベントストーミングについて学ぶ

    • イベントストーミングには7要素あり、アクター・コマンド・集約・ドメインイベント・ポリシー・リードモデル(ビュー)で業務におけるシステムフローを可視化するメソッド。

  • ドメインイベントは過去形で記述できるビジネスプロセスやビジネスにおけるシステムのプロセスのことで、起こった出来事なので状態を伴う。

    • 例えば、図書館を例にすると「本を借りた」「本を返した」「本を探した」とか?

    • 本を借りれば、本は「貸出中」という状態に変化するし、返したとあれば「貸出可」の状態になる。

    • 本を探したもドメインイベントなのか微妙な雰囲気。探した結果本が見つかったかどうかが状態なのか?

  • イベントストーミングでは、アクターのインタラクション≒コマンドがトリガーになり関連する集約でデータをビジネスルールのもとに検証し発生するものがドメインイベントでさらにそのイベント後に一定の条件下でコマンドを呼ぶ場合のその条件がポリシー。それらの結果がリードモデルを通してアクターに表示される・返される。

    • これに沿って実装するのに適しているのがCQRS。

    • DMMFも基本的にはイベントストーミングを用いて設計されていく。

    • 集約にはエンティティ・値オブジェクトなどで構成されたビジネスルールをカプセル化したもの。OOP型のDDDと異なりそれぞれ純粋関数(イミュータブルでありかつ副作用がなく同じ入力に対して同じ結果を必ず返す関数)で構成される。

  • イベントストーミングはサービスブループリントのフロントステージからバックステージ(サポートプロセス含む)のシステムやアプリケーションの部分を詳細に記載するところで組み合わせられるのではないか?と思い、例題を現在作図中。

そのほか、メモ

← #31 #33 →

@tyshgc
デザインファーム及びスタートアップ(上場)などを経てフリーランスとして、様々なスタートアップや大手企業の新規事業の立ち上げ期における事業設計・アプリケーションの設計・開発、サービスのUX分析とデザインとエンジニアリングの両軸でお手伝いさせていただいています。 現在、個人開発者向けの支援サービスを個人開発中。 X Account: @tyshgc