DDD (微妙にクリーンアーキテクチャ)勉強会

DDDとは ドメイン駆動設計 ドメインとはなにか 金を稼ぐもの ドメインに駆動して設計するということはつまり「自分たちのビジネスを中心に考えてソフトウェアの設計をしましょう」 DDDをやる理由 自分たちが儲けるため(課題を解決するため)のソフトウェアをつくるため ソフトウェアの制約のせいで儲けを追求できない->ダメ ドメイン層(Entity) ビジネス上の戦略や意思決定を反映している エンティティとは そのIdentityによって区別されるもの Identityをどう表現するかは実装次第 現実ではIDのような一意になるキーを振る 可変である 中身が変わる可能性がある 値オブジェクト エンティティじゃないもの 不変である Identityによって区別しない その値によって価値が決まる 実装寄りの話 ドメインモデル貧血症 ロジックがドメインに集まってない ドメインロジックが集まっている class Human { id: string height: int weight: int int BMI() { return height * height / weight } } // 実際に使うとき const nanakani = new Human(168, 60) nanakani.BMI() ドメインロジックに集まってない class Human { id: string height: int weight: int } // 実際 const nanakani = new Human(168, 60) const nanakaniBmi = nanakani....

March 27, 2024 · 3 min · 438 words · ryone