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
ビジネスとアプリケーションを繋げるモデリング
Search
MonotaRO
PRO
December 12, 2024
0
140
ビジネスとアプリケーションを繋げるモデリング
2024/12/11開催
~モノタロウ式~ドメインモデリングとリアーキテクチャ Vol.2
MonotaRO
PRO
December 12, 2024
Tweet
Share
More Decks by MonotaRO
See All by MonotaRO
「良いコード」を探し求めて
monotaro
PRO
0
110
20241004 モノタロウ式~ドメインモデリングとリアーキテクチャ
monotaro
PRO
2
1k
BigQueryとCloud Composerを使って大規模バッチ処理をデータパイプラインに再構築する
monotaro
PRO
5
390
ビジネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する
monotaro
PRO
20
7k
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Raft: Consensus for Rubyists
vanstee
136
6.7k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
510
The Invisible Side of Design
smashingmag
298
50k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Become a Pro
speakerdeck
PRO
26
5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Site-Speed That Sticks
csswizardry
1
180
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
430
The Cost Of JavaScript in 2023
addyosmani
45
6.9k
Transcript
ビジネスとアプリケーションを 繋げるモデリング 1 2024.12.11 © 2020 MonotaRO Co., Ltd. All
Rights Reserved.
尾髙敏之 株式会社MonotaRO CTO-Officeグループ 在庫モダナイズチーム シニアアーキテクト 2 2023年11月にモノタロウ入社。 IT職歴の大半を事業会社のIT部門で過ごし、biz/sysの関係構築や要件定義などの超上流 工程に取り組んできたが、「質とスピード」という言葉に出会ってからは品質→保守性 に目を開き、モノタロウ入社後は良い構造とは?を求めてチームとすり合わせる日々。
最近はイベントストーミングの企画やファシリテートで声をかけてもらうことが多く なってきた。
3 早速ですが、、 モデリングしてますか?
4 どんなときに モデリングしてますか?
5 • 理解を共有したいとき • 事業や業務を理解したいとき 当チームでは
6 • 理解を共有したいとき • 事業や業務を理解したいとき 当チームでは
7 理解を共有したいとき
8 「モデル≒目的に沿わない詳細を省いた図」 と思ってるので、モデルです。たぶん。 同じテキストでも、 重厚長大なドキュメントより 構造化・要約されたテキストのほうが ぱっと見で掴めることが多くておすすめです。 そのメモの集まりは「モデル」か?
9 • 理解を共有したいとき • 事業や業務を理解したいとき 当チームでは
10 • 事業や業務を理解したいとき ◦ ビッグピクチャー ◦ コンテキストマップ ◦ プロセスモデル ◦
ドメインモデル 当チームでは
11 イベントストーミングで広範囲をざっくりと(ハッピーパスだけ)。 画像ではいろいろな付箋を使っていますが、 直近では「イベント」と「ホットスポット」だけ使って全体を俯瞰してます。 ビッグピクチャー
12 DDD的コンテキストマップと異なり、 業務領域間の関連を示す図として書きます。 (DDD的...はシステム間の関係性) なので、ビッグピクチャで業務領域が見えたら まず書きます。 対象の業務領域が、周辺の業務領域と どう関係するのか線で結んでいきます。 ただし、プロセスモデリングまでやらないと 十分な情報が揃わないので、進んでは戻りを
繰り返します。 コンテキストマップ
13 いわゆるイベントストーミングを真面目にやります。 イベストは真面目にやると大変なので、ビッグピクチャと書きかけのコンテキストマッ プから「ヤバそうな匂い」がするところに絞って深掘りします。 付箋を全色使って、問題領域でどのようなプロセスが営まれているかを可視化します。 プロセスモデル
14 ドメインモデル図。 ざっくりしたクラス図っぽい感じ? アプリケーションの構造みが強い ので、 ドメインエキスパート(業務の人々) にはちょっと取っつきにくいんじゃ ないかな?と思ってます。 (個人の感想です) ドメインモデル
15 ところで 流れから構造に変換 て プロセスモデル→ドメインモデルへの変換って ギャップを感じないですか? 「流れ」を追いかけていたのに急に「構造」を示せ って言われても、なかなかしっくりくるものが できなくないですかね。 (不慣れな業務領域だと特に)
16 各モデルの棲み分け コンテキストマップ 構造のモデル 流れのモデル ドメイン 全体 ビッグピクチャ 業務領域 プロセスモデル
ドメインモデル
17 各モデルの棲み分け + なに観点? コンテキストマップ 構造のモデル 流れのモデル ドメイン 全体 ビッグピクチャ
業務領域 プロセスモデル ドメインモデル 業務的 業務的 ほぼ業務的 (詳細化するとアプリ設計に) わりと アプリ的
18
プロセスモデルも詳細化していけば ≒アプリケーション設計にもなるので、つまるところ 程度問題でしかありません。 モノタロウでは、ドメインモデルで モジュール性を意識した構造化を勧めるので、 エンティティ,値オブジェクト,カプセル化,, といった用語が飛び出し、業務担当者を困惑させます 19 ドメインモデルはアプリ寄り?
20 そこで「概念構成図」
• ドメインモデルよりも 業務上の要素とその関係をより精緻に表現できる • ドメインエキスパートの人にも (比較的)理解してもらいやすい ◦ 具体的な業務名(ユースケース)と属性の 繋がりを追いやすい ◦
構造化・色分けにより視認性が高い 21 概念構成図?
では、 早速 書き方を 22
だがしかし 時間が尽きました、、 23
24 まずはプロセスモデリング イベントストーミングから 知りたいな?という方は、 下記をご覧いただくと きっと幸せになれます。 • [E-3] 実践!モノリスからマイ クロサービス!Event
Stormingによるドメイン駆動 設計から実装まで | AWS Dev Day 2023 Tokyo #AWSDevDay • イベントストーミング入門 【ノーカット版】
25 コマンド(操作)と集約(概念)とユースケース まず、プロセスモデルから コマンド(青)と集約(黄)を 抜き出して配置します。 さらに、操作を実行する主体 としてユースケースを配置し ます。 ユースケースは、他領域の イベントにより発火したり、
アクターにより実行される 業務を想定してください。
26 概念→属性→リードモデル 次に、概念を詳細化して 主要な属性を導出します。 また、属性の加減算などにより 導出可能な属性はリードモデルと して色を分けて配置します。 ひとまずこれで「概念構成図」は 完成しました。 かんたんですね
♪
27 まとめ • メモを配置して線でつないだらモデリング! ◦ 考えがまとまる・伝わる ◦ 具体化・抽象化しやすい • 概念構成図
◦ 「流れ」を「構造」に変換 ◦ 非エンジニアとの理解を深める
28 © 2020 MonotaRO Co., Ltd. All Rights Reserved.