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
DDDモデリング勉強会 #6
Search
株式会社Jurabi
October 01, 2024
Programming
70
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DDDモデリング勉強会 #6
DDDモデリング勉強会#6 の発表資料
コンテキストマップの説明です。
株式会社Jurabi
October 01, 2024
More Decks by 株式会社Jurabi
See All by 株式会社Jurabi
DDDモデリング勉強会 #7
jurabi
0
27
DDDモデリング勉強会 #9
jurabi
0
39
Deep Learning勉強会 逆伝播の仕組み
jurabi
0
51
RDBの世界をぬりかえていくモデルグラフDB〜truncus graphによるモデルファースト開発〜
jurabi
0
420
Other Decks in Programming
See All in Programming
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
3
1k
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
140
業務時間外もAIに働いてもらう話
colorful12
3
10k
XHTMLが残したもの
yosuke_furukawa
PRO
1
400
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
53
35k
Oxlintはいいぞ(続)
yug1224
1
540
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
0
230
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
810
バグを直したら useEffect が消えた
colorful12
3
840
PyConJP2026_wat_Python × Signal Processing: How to Draw Pictures with Sound Using Spectrogram Art
wat
0
670
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
630
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
140
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
690
Accessibility Awareness
sabderemane
1
200
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
220
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.2k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
440
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
520
Building the Perfect Custom Keyboard
takai
2
860
Transcript
DDDモデリング勉強会 第6回 2016/3/18(金) 19:00 – 20:00
DDDモデリング勉強会について 【目的】 • 「エリック・エヴァンスのドメイン駆動設計(DDD本)」を題材と して、DDDの勉強をする • 興味のあるテーマについて、講義+実践(モデリング)を通し て、DDDの手法を理解する • DDD本に完全準拠で進めるわけではなく、自分たちの考えを
含める 1
DDDモデリング勉強会について 【過去の開催】 #1 DDDの基礎(講義) #2 DDDの基礎(モデリング) #3 DDDの基礎(グループモデリング) #4 エンティティ、値オブジェクト(グループモデリング)
#5 エンティティ、値オブジェクト(レビュー) 2
アジェンダ • 境界付けられたコンテキスト • コンテキストマップ • コンテキストマップを作ってみる • コンテキストマップを使ってみる 3
アジェンダ • 境界付けられたコンテキスト • コンテキストマップ • コンテキストマップを作ってみる • コンテキストマップを使ってみる 4
境界付けられたコンテキスト • ドメインモデルがどこに属するか • ドメインモデルが通用する範囲 • ユビキタス言語の境界 5
境界づけられたコンテキスト アカウント 銀行取引コンテキスト アカウント ユーザ管理コンテキスト 口座のこと 顧客の財務状況をあらわす システムへログインするユーザーのこと 6
境界はどうやって決めるのか? • 初めから完全に線は引けない • ドメインエキスパートとの会話をしつつ必要に応じて 概念を整理していく – 会話やモデルの語彙に違和感がある • 同じ「言葉」別の「意味」
• 違う「言葉」同じ「意味」 • 別のコンテキストにも同じような語彙がある – モデルの見た目に違和感がある • 他から参照されないエンティティがある • 多数のエンティティに保持されているエンティティがあ る。 7
アジェンダ • 境界付けられたコンテキスト • コンテキストマップ • コンテキストマップを作ってみる • コンテキストマップを使ってみる 8
コンテキストマップって? • 境界付けられたコンテキストが全体でどのよ うな位置づけにいるのかを把握するツール – 各コンテキスト間の関係 – 各コンテキストに含まれるドメイン – 各コンテキストに含まれるドメイン間の関係
(関心 対象の部分を切り出す) – 表現は自由(ホワイトボード等に書いても良い) 9
コンテキストマップを作る目的 現状をコンテキストマップで表現し、戦略的に 改善方向を決定する 現状のコンテキストマップを作る 問題を把握する 問題の改善方法を決める 問題を改善する 繰り 返す 10
Cコンテキスト コンテキストマップの例 U D U D U D Bコンテキスト Aコンテキスト
ACL OHS/PL U:上流(upstream) D:下流(downstream) OHS:公開ホストサービス(open host service) PL:公表された言語(public language) ACL:腐敗防止層(anticorruption layer) A1ドメイン A2ドメイン Cドメイン Bドメイン 11
アジェンダ • 境界付けられたコンテキスト • コンテキストマップ • コンテキストマップを作ってみる • コンテキストマップを使ってみる 12
コンテキストマップを作ってみる • 随時作る • 作ったものは捨てる • 簡単に書けそうなところから手をつける • 適当でもいいから書いてみる 理想形ではなく、あくま
で現状を表現する 13
次のシナリオで実際に作ってみよう • 自社製品と他社製品の販売をしている会社 の既存の業務システムを段階的にリプレイス する • 販売管理サブシステムと在庫管理サブシステ ムをリプレイスする • 人事管理、製造管理、会計管理サブシステム
は今回のリプレイス対象外 14
コンテキストが分かれそうなのは・・ • サブシステム • 外部システム • パッケージ製品 • 業務の組織構造 •
ソースのパッケージ • 開発体制 etc. 通常のプロジェクト では、コンテキスト があいまい 15
開発対象外 開発対象 最初はサブシステムでわけてみる 在庫管理 コンテキスト 販売管理 コンテキスト 生産・製造管理 コンテキスト 会計管理
コンテキスト 人事管理 コンテキスト 16
コンテキストマップをつくる 販売管理 コンテキスト 会計管理 コンテキスト 人事管理 コンテキスト 生産・製造管理 コンテキスト 在庫管理
コンテキスト ACL ACL ACL PL U U D D パッケージ製品 17
アジェンダ • 境界付けられたコンテキスト • コンテキストマップ • コンテキストマップを作ってみる • コンテキストマップを使ってみる 18
問題かもしれない箇所を見つける コンテキスト間に双方向の依存があるが・・ 他にも・・ – ログイン管理・ユーザ管理とかどこ? – 管理会計は? 正しい依存かを検証する 19
販売管理コンテキスト 受注 顧客 発注 請求 在庫管理コンテキスト 在庫 コンテキストのドメインを洗い出す 20
販売管理に発注と受注のドメインが含まれてい るためだった 双方向依存の原因は? 発注業務は、他社からの購買なので自社の製 品を売る販売管理とは違うコンテキストのはず 21
この問題を改善するためには 販売管理コンテキスト 受注 顧客 請求 在庫管理コンテキスト 在庫 購買管理コンテキスト 発注 22
改善した結果・・ 販売管理 コンテキスト 会計管理 コンテキスト 人事管理 コンテキスト 生産・製造管理 コンテキスト 在庫管理
コンテキスト ACL ACL ACL PL U D パッケージ製品 購買管理 コンテキスト ACL U D D U 23
DDDモデリング勉強会について 【今後の予定】 #7 コンテキストマップ(モデリング) 5月 (1) お題をもとにコンテキストマップを作ってみる (2) 作ったコンテキストマップから問題を見つける #8
ドメインイベント(講義) 7月 #9 ドメインイベント(モデリング) 9月 24