Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Re:ゼロから始めるドメイン駆動設計
Search
satokoki
July 29, 2024
0
70
Re:ゼロから始めるドメイン駆動設計
データが飛んだので、途中までのものです・・・・・・。
satokoki
July 29, 2024
Tweet
Share
More Decks by satokoki
See All by satokoki
誤解 クリーンアーキテクチャ
kxuxl
0
140
Docker_OSS_ホスティング入門
kxuxl
0
250
事例で学ぶ プロダクト開発
kxuxl
0
66
WEBフロントエンドの秩序を保つ
kxuxl
0
88
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Scaling GitHub
holman
458
140k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Being A Developer After 40
akosma
86
590k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Unsuck your backbone
ammeep
668
57k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
360
Making the Leap to Tech Lead
cromwellryan
133
8.9k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Adopting Sorbet at Scale
ufuk
73
9.1k
Transcript
Re: ゼロから始める ドメイン駆動設計 satokoki645
とつぜんですが!
とつぜんですが! ドメインとは一体なんでしょうか?
ドメインとは
ドメインとは ・インターネットの住所?
ドメインとは ・インターネットの住所? ・ドメイン「モデル」だし、データベースとか?
ドメインとは ・インターネットの住所? ・ドメイン「モデル」だし、データベースとか? ・ビジネス側のこと?よく知らない
ドメインとは ・インターネットの住所? ・ドメイン「モデル」だし、データベースとか? ・ビジネス側のこと?よく知らない 脱却したい!
今回は
今回は Re: ゼロから始める
今回は Re: ゼロから始める ドメイン駆動設計
こんにちは 佐藤 功樹 satokoki645 🆔 フロントエンドエンジニア 新篠津村出身 📍 札幌市と最も近い村
おしながき 第一章 『キックオフの余熱』 第二章 『始まりの終わり』 第三章 『終わりと始まり』
結論 1. 事業活動 2. 事業理解 3. 設計判断 4. 各実装 ・課題は何か?
・事業の仕組みは? ・ステークホルダー ・競合他社は? ・他サービスは? ・自社の強みは? ・収益モデルは? ・対策は? ・仕組みの欠陥は? ・不利益があるか? ・競合に勝てるか? ・必須の機能は? ・強みを伸ばすには ・収益モデルの昇華 ・ビジネスの実装 ・システムで解決 ・実装すべきか? ・コアコンピタンス ・差別化の機能実装 ・アイデアの具現化 ・決済システム実装 ・トランザクション ・ドメインモデル ・レイヤー決め ・セキュリティ ・マイクロサービス ・データメッシュ ・テスト戦略
第一章 『キックオフの余熱』
第一章 『キックオフの余熱』 ある日の午後 ━━━━━━━━━ そうだ、今度新しいプロジェクトを任せる人を探しているんだよね。 興味ある? え、はい......私でよければ是非。 ちなみにどういう感じのプロジェクトですか? うーん、まあお客さまと二人三脚で作っていくものかな。
お客さまも熱意だけ持ってて、テクノロジーは分からないらしい。
第一章 『キックオフの余熱』 その後、新米PLはメンバーを集め、キックオフを行った。 これからよろしく。早速なんだけど、進め方を決めたいんだ。 イケてるECサイトを作りたいらしいんだけど、進め方に案がある人? お客さまも考えが固まってないようです。 アジャイルで柔軟に開発を進めていくのが良いのでは? うーん、知見者もいない中では若干不安だけど.....。 ではそのように。
第二章 『始まりの終わり』
第一章 『キックオフの余熱』 まずはお客さまの要望を整理しようか。 主なところで言うと以下の通りで、あとから仕様追加あるかも。 ・カッコいいUI、UX ・誰にとっても簡単な購入プロセス ・検索機能
本当に最低限ですね。 これくらいなら僕が爆速で作りましょう。 (この人実装速いって聞いたなぁ・・・)
第二章 『始まりの終わり』 技術は個人的に使いやすいし、フロントから作ろうかな。 Node.js + TypeScriptで。 🔍 ヒーロー 広告 商品一覧
商品情報 商品名 注文情報 かう!! メイン画面 カート画面 商品画面 その他の商品など 決済情報
第二章 『始まりの終わり』 よし、UIは大体できたな.....。 じゃあ機能実装で処理を作っていこう。 ※必要な処理を結構カットしてます。 完成!! 検索 購入
第三章 『終わりと始まり』
第三章 『終わりと始まり』 やあ、進捗はどうかな? 良かったら聞かせてほしい。 プロトタイプができました! (挙動を見せる)これでいかがでしょうか! おお!いいね。 それで追加実装なんだけど......。 第 n
スプリントにて ━━━━━━
第三章 『終わりと始まり』 う〜〜〜ん、出来なくもないけど・・・。 複雑になってきたなぁ。 とりあえずこんな感じで。 よろしくね〜〜〜。 ・割引設定 ・税金計算
・カテゴリ検索 ・MAX値段、MIN値段の指定 まあやっていくしかないよ。 頑張ってね。
第二章 『始まりの終わり』 さて、じゃあ作っていこう。 とりあえずこんな感じかな・・・。 完成!! 検索 購入
単語集 * アジャイル(Agile) 『計画→設計→実装→テスト』といった開発工程を機能単位の小さいサイクルで繰り返すことが特徴 の開発手法のひとつ。ウォーターフォールと対に語られがち。 * サ 主要なドメインをさらに細分化したものです。 例えば、金融業界の中にある「ローン管理」や「資産運用」などの特定の領域を指します。
* ド 特定のドメインにおけるビジネスルールや業務の流れを指します。 これはアプリケーションの中でドメインの振る舞いを決定する重要な部分です。
単語集 * ドメイン(Domain)- 事業活動 ソフトウェア開発において「ドメイン」は特定の問題領域や業務活動を指します。 例えば、金融業界、医療業界、教育業界など、それぞれ特有のビジネスルールや課題があります。 * サブドメイン(Sub Domain)-
業務領域 主要なドメインをさらに細分化したものです。 例えば、金融業界の中にある「ローン管理」や「資産運用」などの特定の領域を指します。 * ドメインロジック(Domain Logic)- 業務ロジック 特定のドメインにおけるビジネスルールや業務の流れを指します。 これはアプリケーションの中でドメインの振る舞いを決定する重要な部分です。
単語集 * コアドメイン(Core Domain) - 中核の業務領域 そのビジネスにとって最も重要で差別化要因となる業務領域です。 例えば、eコマースサイトの「商品検索とレコメンデーション」機能などがこれに該当します。 *
ユビキタス言語(Ubiquitous Language)- 共通認識の言葉 開発者含めた関係者が共通で理解し使用する言葉や用語を指します。 これにより、コミュニケーションのギャップが減り、よりスムーズな開発が可能になります。 * 境界コンテキスト(Bounded Context)- 区切られた文脈 ドメイン内の明確な境界を示し、その中で特定のビジネスロジックやモデルが有効であることを意味 します。これにより、異なるサブドメイン間での混乱を避けることができます。
単語集 * コンテキストマップ(Context Map) - 文脈の地図 異なる境界コンテキスト間の関係やインタラクションを視覚的に示したものです。 いまだと、Miroとかで書かれがちっぽいです。 その他の用語について
もっと知りたい場合は、引用元をご確認ください。 参考文献もあり、かなりわかりやすい資料になっております。 https://www.ogis-ri.co.jp/otc/hiroba/technical/DDDEssence/ DDD難民に捧げる Domain-Driven Designのエッセンス