Slide 1

Slide 1 text

TechBowl流 ドメインモデルでの情報設計 中村 広樹 @coco_typing

Slide 2

Slide 2 text

導入 自己紹介 株式会社TechBowl プロダクトエンジニア 中村 広樹 (Hiroki Nakamura) 猫とゲームが好きです。 普段はVRでバーチャル出勤してます。

Slide 3

Slide 3 text

導入 ドメインモデルを作る目的 ● 情報を整理し、関係者と共通認識を持つ ● 設計の方向性をチームで共有し、実装をスムーズにする

Slide 4

Slide 4 text

ドメインモデルの作り方 事業の主役を見つける 目的やユースケースを整理 主要なエンティティ 値オブジェクト・集約を考える

Slide 5

Slide 5 text

ドメインモデルの作り方 情報整理で意識すること ● ユビキタス言語を使う ○ 新しいワードを勝手に作らない ○ 知らないワードが聞こえたら確認 ● 概念の関係性を意識 ○ 何に依存するか?どれくらい? ● 生成や状態変更のルール ○ 他概念との関係性の中で生まれる制約も意識 ○ 状態遷移図を雑に話しながら書くのも有用

Slide 6

Slide 6 text

ドメインモデルの作り方 情報をまとめる道具を用意 チームで分かりやすい形になってれば形式はなんでもOK 様々なツールを模索しましたが、TechBowlではWhimsicalとい うツールに落ち着いています(2025/02現在)

Slide 7

Slide 7 text

ドメインモデルの作り方 関連するまとまりで概念を配置

Slide 8

Slide 8 text

ドメインモデルの作り方 概念についての説明 システム上での役割や他の概念との連携など リンクを貼ってわかりやすくするとGood 値オブジェクト 値の説明や制約を記載 ライフサイクル制約 生成・更新・削除ロジックの制約について記載 ここに書いたことをテスト項目として実装するの がGood ライフサイクルイベント ライフサイクルをフックして発火する処理につい て記載

Slide 9

Slide 9 text

ドメインモデルの作り方 注意していること ● インフラ層のことを考えすぎない ○ 集約を考える上で、気づいたら思考がインフラ部分に染み出していることが ある ○ 集約が大きくなりすぎてライフサイクル処理がボトルネックにならないよう に ● モデリング自体を一人でやらない ○ 簡単だと思うモデルでも開発メンバーを巻き込むと新しい発見がある

Slide 10

Slide 10 text

ありがとうございます!