Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Re:ゼロから始めるドメイン駆動設計

satokoki
July 29, 2024
64

 Re:ゼロから始めるドメイン駆動設計

データが飛んだので、途中までのものです・・・・・・。

satokoki

July 29, 2024
Tweet

Transcript

  1. 結論 1. 事業活動
 2. 事業理解
 3. 設計判断
 4. 各実装
 ・課題は何か?

    
 ・事業の仕組みは? 
 ・ステークホルダー 
 ・競合他社は? 
 ・他サービスは? 
 ・自社の強みは? 
 ・収益モデルは? 
 ・対策は? 
 ・仕組みの欠陥は? 
 ・不利益があるか? 
 ・競合に勝てるか? 
 ・必須の機能は? 
 ・強みを伸ばすには 
 ・収益モデルの昇華 
 ・ビジネスの実装 
 ・システムで解決 
 ・実装すべきか? 
 ・コアコンピタンス 
 ・差別化の機能実装 
 ・アイデアの具現化 
 ・決済システム実装 
 ・トランザクション 
 ・ドメインモデル 
 ・レイヤー決め 
 ・セキュリティ 
 ・マイクロサービス 
 ・データメッシュ 
 ・テスト戦略 

  2. 第二章 『始まりの終わり』 技術は個人的に使いやすいし、フロントから作ろうかな。 Node.js + TypeScriptで。 🔍 ヒーロー 広告 商品一覧

    商品情報 商品名 注文情報 かう!! メイン画面 
 カート画面 
 商品画面 
 その他の商品など 決済情報
  3. 単語集 * ドメイン(Domain)- 事業活動 
 ソフトウェア開発において「ドメイン」は特定の問題領域や業務活動を指します。 例えば、金融業界、医療業界、教育業界など、それぞれ特有のビジネスルールや課題があります。 * サブドメイン(Sub Domain)-

    業務領域 
 主要なドメインをさらに細分化したものです。 例えば、金融業界の中にある「ローン管理」や「資産運用」などの特定の領域を指します。 * ドメインロジック(Domain Logic)- 業務ロジック 
 特定のドメインにおけるビジネスルールや業務の流れを指します。 これはアプリケーションの中でドメインの振る舞いを決定する重要な部分です。
  4. 単語集 * コアドメイン(Core Domain) - 中核の業務領域 
 そのビジネスにとって最も重要で差別化要因となる業務領域です。 例えば、eコマースサイトの「商品検索とレコメンデーション」機能などがこれに該当します。 *

    ユビキタス言語(Ubiquitous Language)- 共通認識の言葉 
 開発者含めた関係者が共通で理解し使用する言葉や用語を指します。 これにより、コミュニケーションのギャップが減り、よりスムーズな開発が可能になります。 * 境界コンテキスト(Bounded Context)- 区切られた文脈 
 ドメイン内の明確な境界を示し、その中で特定のビジネスロジックやモデルが有効であることを意味 します。これにより、異なるサブドメイン間での混乱を避けることができます。
  5. 単語集 * コンテキストマップ(Context Map) - 文脈の地図 
 異なる境界コンテキスト間の関係やインタラクションを視覚的に示したものです。 いまだと、Miroとかで書かれがちっぽいです。 その他の用語について

    
 もっと知りたい場合は、引用元をご確認ください。 参考文献もあり、かなりわかりやすい資料になっております。 https://www.ogis-ri.co.jp/otc/hiroba/technical/DDDEssence/ DDD難民に捧げる Domain-Driven Designのエッセンス