SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
ドメイン駆動設計の
正しい歩き方
2019年5月29日
ギルドワークス 増田
BP Study #144 ~DDD(Domain Driven Design)実践の現場
ドメイン駆動設計でなぜつくるのか?
22019/5/29
進化を続けるソフトウェアを手に入れる
ソフトウェアの変更を楽で安全にする
2019/5/29 3
この価値観に振り切っている
リリース後、あまりコードを変えない/変えられない、という世界とは別のアプローチ
ドメイン駆動設計とはなにか?
2019/5/29 4
整合性
トランザクション
ドメイン駆動設計?
ネットワーク
レガシー
アーキテクチャ
要件定義
分析・モデリング
XP
設計パターン
オブジェクト指向
リファクタリング
ORマッピング
データベース
モデル駆動設計
ビジネスの活動
設計に関係する話はしているが…2019/5/29 5
ドメイン駆動設計の本質
2019/5/29 6
ソフトウェアの核心にある
複雑さに立ち向かう
2019/5/29 7
核心にある複雑さ
2019/5/29 8
ソフトウェアの複雑さは
ビジネス活動の複雑さに由来する
ビジネスルール:ビジネスの活動を駆動し、制約する約束事
ドメインロジック:ビジネスルールをコードで表現したもの
ドメイン駆動設計の考え方
2019/5/29 9
中でもビジネスルールの複雑さが
ソフトウェアの複雑さの根本原因
核心にある複雑さを
適切に扱う
核心と周辺との
依存関係が明確になる
全体の構造の
改善に波及する
周辺の
複雑さが軽減される
ビジネス活動の複雑さ
それを刺激し制御する
ビジネスルールの複雑さ
2019/5/29 10
核心にある複雑さをどう扱うか?
2019/5/29 11
核心にある複雑さ
に立ち向かう
ビジネスの活動を
継続的に学ぶ
モデルと実装を
密に結合する
ドメイン層を
独立させる
コアドメインに
集中する
システム間の秩序の
改善を続ける
ビジネスを
深く洞察する
ビジネスルールの複雑さ
2019/5/29 12
ドメイン駆動設計を実践するための
6つの問い
132019/5/29
ビジネスの活動を継続的に学んでいるか?
コアドメインに集中しているか?
ビジネスを深く洞察しているか?
ドメイン層を独立させているか?
モデルと実装を密に結合しているか?
システム間の秩序の改善を続けているか?
2019/5/29 14
ドメイン駆動設計
正しい道からはずれる時
152019/5/29
ビジネスの活動から目をそらす
全体を均質にカバーしようとする
ビジネスを表面的にとらえて理解した気になる
ドメイン層に入出力の関心事を持ち込む
モデルと実装を切り離す
システム間を力づくで連携させる
2019/5/29 16
ソフトウェアの
核心にある複雑さに立ち向かう
172019/5/29
核心にある複雑さ
に立ち向かう
ビジネスの活動を
継続的に学ぶ
モデルと実装を
密に結合する
ドメイン層を
独立させる
コアドメインに
集中する
システム間の秩序の
改善を続ける
ビジネスを
深く洞察する
ビジネスルールの複雑さ
2019/5/29 18
事例研究
ホテルの予約アプリケーション
192019/5/29
宿泊予定日の
空きを確認する
料金を確認する
予約する
料金計算ルール
(ここに焦点を合わせる)
氏名、連絡先の入力と記録
空き状況の更新
部屋の空きの管理
宿泊を希望する人
2019/5/29 20
宿泊料金は
ビジネス活動
の中核の関心事
宿泊料金
この料金計算ロジックを
いきなり、コードで
書けますか?
さまざまな理由で
複雑化する
料金カレンダー
さまざまなケースで
バグを出さない自信は?
ルール変更があった時
バグを出さない自信は?
2019/5/29 21
複雑な料金計算ロジックを
どうやってコードで表現するか
222019/5/29
ドメインロジックを独立させる
プレゼンテーション層
(料金確認画面)
アプリケーション層
(料金計算の実行)
データソース層
(料金設定データの取得)
ドメイン層
料金計算モジュール
2019/5/29 23
左側の関心事から分離して
「料金計算ロジック」を独立して実装する
モデルで整理し
モデルと実装を密に結合する
表形式のルール
さまざまな但し書き
料金モデル
class 料金 {
金額 合計() {
…..
}
}
料金ルールを整理する
料金ルールの構成要素とその関係
自然言語や数式、クラス図、…
計算ロジックを実装する
コードのリファクタリング
モデルへのフィードバック
2019/5/29 24
コアドメインに集中する
料金計算のさまざまな関心事
• 宿泊日はどのシーズンか
• 特別室か一般客室か
• 一室に何名で泊まるか
• 大人、子供、幼児はそれぞれ何人か
• 消費税計算と税率変更対応
• ホテル休業日
• 素泊まり料金、素泊まり条件
• 小学生料金
• 幼児の寝具、幼児の食事、一名カウント
• 一室一名条件
• キャンセル料
中核のルールは何か?
周辺のルールは何か?
除外すべきルールは何か?
コアドメインを探り当て、そこに集中するために、ビジネスの活動を継続的に学ぶ
2019/5/29 25
ビジネスを深く洞察する
中核となる料金ルールは、なぜそうなっているか?
周辺の料金ルールは、どういう意味か?
料金表の間違いを指摘できるか?
ビジネスを深く洞察するために、ビジネスの活動を継続的に学ぶ
2019/5/29 26
システム間の秩序の改善を続ける
システム間の秩序の改善を続けるため、ビジネスの活動を継続的に学ぶ
フロント管理
パッケージソフト
クレジット決済
代行サービス
要員管理
宿泊予約
アプリケーション
外部の
予約サービス
仕入れ管理
販売促進活動
人間系?
CSVファイル連携?
Web API?
2019/5/29 27
ビジネスの活動を継続的に学ぶ
ビジネスの活動を
継続的に学ぶ
コアドメインに
集中する
ビジネスを
深く洞察する
システム間の秩序の
改善を続ける
2019/5/29 28
ドメイン駆動設計でつくるとは
どういうことか?
2019/5/29 29
核心にある複雑さ
に立ち向かう
ビジネスの活動を
継続的に学ぶ
モデルと実装を
密に結合する
ドメイン層を
独立させる
コアドメインに
集中する
システム間の秩序の
改善を続ける
ビジネスを
深く洞察する
ビジネスルールの複雑さ
2019/5/29 30
ドメイン駆動設計を現場に導入する
312019/5/29
エヴァンス本を
ちゃんと読む!
体験的に
習得する
想定読者の
要件をクリアする
ハンズオン
OJT
28ページの
抜粋版を読む
要点を
重点的に読む
全体構成を
理解する
エヴァンスの
文章スタイルに
慣れる
教材セット
2019/5/29 32
想定読者の要件をクリアする
332019/5/29
エヴァンス本の想定読者
オブジェクト指向ソフトウェアの開発者
UMLとJavaの基礎知識を持っている
オブジェクト指向モデリングの若干の知識
エクストリームプログラミングを知っている
オブジェクト指向設計のなんらかの知識
オブジェクト指向設計の文献を1,2冊は読んでいる
2019/5/29 34
想定読者の要件をクリアする教材セット
352019/5/29
DDDサンプルコード
設計可視化ツール
わかりやすい入門書
普遍的な教科書
https://github.com/system-sekkei/isolating-the-domain
61 watchers
259 stars
44 forks
https://github.com/dddjava/Jig
13 watchers
55 stars
4 forks
設計ガイドライン
https://github.com/masuda220/business-logic-patterns/wiki/設計ガイドライン
ドメイン駆動設計本格入門
https://www.slideshare.net/masuda220/ss-137608652
Java
UML
オブジェクト指向設計
オブジェクト指向設計, Java
オブジェクト指向設計
2019/5/29 36
教材セットを使った体験学習
ハンズオン
社内研修
社外研修
DDD Alliance
https://ddd-alliance.connpass.com/
2019/5/29 37
実プロジェクトでOJT
OJT
新規開発案件に
参加する
開発プロジェクトを
手伝う
絶賛 募集中!
応相談!
個人
企業
副業支援
独立支援
スキルアップ支援
2019/5/29 38
エヴァンス本をちゃんと読む!
392019/5/29
28ページの
抜粋版を読む
紙の本を読む
✓ いったりきたりするため
✓ 文章の構造を視覚的にとらえるため
要点を
重点的に読む
全体構成を
理解する
エヴァンスの
文章スタイルに慣れる
2019/5/29 40
28ページの抜粋版
読むべきところ ページ数 開始 終了
まえがき 9 xii xx
第1部 ドメインモデルを機能させる 導入文 4 2 5
第2部 モデル駆動設計の構想要素 導入文 2 62 63
第3部 より深い洞察に向かうリファクタリング 導入文 5 190 194
第4部 戦略的設計 導入文 2 336 337
結論 6 506 511
合計ページ数 28
2019/5/29 41
エヴァンス本の全体構成を理解する
422019/5/29
2019/5/29 43
参考
2019/5/29 44
エヴァンス本と照らし合わせると、かなり偏った内容
バーノン本を読む時は、そこは理解しておいたほうがよい
エヴァンス本の全体構成を理解する
そのうち10程度のパターン形式のセクションだけで語られすぎ
4部、17章、114セクション
パターン形式のセクション 43
一般形式のセクション 71
バーノンの「実践ドメイン駆動設計」の影響?
目次で、セクション見出しを
一覧できる
ドメイン駆動設計の核心は、他のセクションにある
エンティティ、リポジトリ、アグリゲート、….
2019/5/29 45
エヴァンス本の要点を重点的に読む
462019/5/29
第3部 深い洞察に向かうリファクタリング
第9章
暗黙的な概念を
明示的にする
第10章
しなやかな設計
概念を
引き出す
明白でない概念を
モデル化する方法
意図の
伝達性
効果的な
分解
宣言的
スタイル
攻める
角度
概念の発見と言語化 表現力の改善
2019/5/29 47
第4部 戦略的設計
ひとつのコンテキストにひとつのモデルを維持する
第14章
モデルの整合性を
維持する 境界づけられた
コンテキスト
継続的な
統合
第15章
蒸留
第16章
大規模な構造
コア
ドメイン
サブ
ドメイン
責務の
レイヤー
2019/5/29 48
第4部 戦略的設計
複数コンテキストの関係を俯瞰して整理する
第14章
モデルの整合性を
維持する
コンテキスト
マップ
第15章
蒸留
第16章
大規模な構造
コア
ドメイン
サブ
ドメイン
責務の
レイヤー
第17章
戦略を
まとめ上げる
進化を続ける
秩序
2019/5/29 49
エヴァンスの文章スタイルに慣れる
502019/5/29
エヴァンスの文章スタイルに慣れる
プロジェクトの
経験談や具体例
設計課題と
考え方の説明
他の事項との
関連性の説明
章、セクションに共通するエヴァンスのスタイル
突然、わけのわからない
話が始まる
ようやく設計の考え方の説明
話が発散したり
焦点がぼやける補足説明
いったん無視
そのほうが混乱しないここをじっくり読む
後ろを理解してから
読み直すと、ようやく
なんの例か理解できる
2019/5/29 51
ドメイン駆動設計の正しい歩き方
522019/5/29
まとめ
ドメイン駆動設計でなぜつくるのか?
532019/5/29
進化を続けるソフトウェアを手に入れる
ソフトウェアの変更を楽で安全にする
2019/5/29 54
ドメイン駆動設計でつくるとは
どういうことか?
2019/5/29 55
核心にある複雑さを
適切に扱う
核心と周辺との
依存関係が明確になる
全体の構造の
改善に波及する
周辺の
複雑さが軽減される
ビジネス活動の複雑さ
それを刺激し制御する
ビジネスルールの複雑さ
2019/5/29 56
核心にある複雑さ
に立ち向かう
ビジネスの活動を
継続的に学ぶ
モデルと実装を
密に結合する
ドメイン層を
独立させる
コアドメインに
集中する
システム間の秩序の
改善を続ける
ビジネスを
深く洞察する
ビジネスルールの複雑さ
2019/5/29 57
ドメイン駆動設計を実践するための
6つの問い
582019/5/29
ビジネスの活動を継続的に学んでいるか?
コアドメインに集中しているか?
ビジネスを深く洞察しているか?
ドメイン層を独立させているか?
モデルと実装を密に結合しているか?
システム間の秩序の改善を続けているか?
2019/5/29 59
想定読者の要件をクリアする教材セット
602019/5/29
DDDサンプルコード
設計可視化ツール
わかりやすい入門書 https://github.com/system-sekkei/isolating-the-domain
61 watchers
259 stars
44 forks
https://github.com/dddjava/Jig
13 watchers
55 stars
4 forks
設計ガイドライン
https://github.com/masuda220/business-logic-patterns/wiki/設計ガイドライン
ドメイン駆動設計本格入門
https://www.slideshare.net/masuda220/ss-137608652
Java
UML
オブジェクト指向設計
オブジェクト指向設計, Java
オブジェクト指向設計
2019/5/29 61

Más contenido relacionado

La actualidad más candente

マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ増田 亨
 
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2増田 亨
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース増田 亨
 
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイルドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル増田 亨
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門増田 亨
 
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由増田 亨
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計増田 亨
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する増田 亨
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで増田 亨
 
ドメイン駆動設計 思えば遠くにきたもんだ
ドメイン駆動設計 思えば遠くにきたもんだドメイン駆動設計 思えば遠くにきたもんだ
ドメイン駆動設計 思えば遠くにきたもんだ増田 亨
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD増田 亨
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意Yoshitaka Kawashima
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring増田 亨
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)Yoshitaka Kawashima
 
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみようドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう増田 亨
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう増田 亨
 
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)Koichiro Matsuoka
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則増田 亨
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 

La actualidad más candente (20)

マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
 
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイルドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
 
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
 
ドメイン駆動設計 思えば遠くにきたもんだ
ドメイン駆動設計 思えば遠くにきたもんだドメイン駆動設計 思えば遠くにきたもんだ
ドメイン駆動設計 思えば遠くにきたもんだ
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみようドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
 
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 

Similar a ドメイン駆動設計の正しい歩き方

レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチレガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ増田 亨
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java増田 亨
 
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】増田 亨
 
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう増田 亨
 
de:code 2019 Cloud トラック 総まとめ! 完全版
de:code 2019 Cloud トラック 総まとめ! 完全版de:code 2019 Cloud トラック 総まとめ! 完全版
de:code 2019 Cloud トラック 総まとめ! 完全版Minoru Naito
 
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬日本マイクロソフト株式会社
 
Open Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfOpen Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfMasahiko Umeno
 
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~ IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~ griddb
 
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT appsMAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT appsShotaro Suzuki
 
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェストIssei Hiraoka
 
RDRA DDD Agile
RDRA DDD AgileRDRA DDD Agile
RDRA DDD Agile増田 亨
 
クラウドを活かし、強みにするISVの可能性 桑原里恵
クラウドを活かし、強みにするISVの可能性 桑原里恵クラウドを活かし、強みにするISVの可能性 桑原里恵
クラウドを活かし、強みにするISVの可能性 桑原里恵Sapporo Sparkle k.k.
 
IBM Log Analysis with LogDNAを評価した話
 IBM Log Analysis with LogDNAを評価した話 IBM Log Analysis with LogDNAを評価した話
IBM Log Analysis with LogDNAを評価した話Daisuke Hiraoka
 
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介20172017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017Tsuyoshi Hirayama
 
DLLab 2018 - Azure Machine Learning update
DLLab 2018 - Azure Machine Learning updateDLLab 2018 - Azure Machine Learning update
DLLab 2018 - Azure Machine Learning updateDaiyu Hatakeyama
 
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法日本マイクロソフト株式会社
 
b→dash Pamphlet.pdf
b→dash Pamphlet.pdfb→dash Pamphlet.pdf
b→dash Pamphlet.pdfmizukiebato
 
基調講演「データのグループウェア化」
基調講演「データのグループウェア化」基調講演「データのグループウェア化」
基調講演「データのグループウェア化」Cybozucommunity
 
ナレッジモール論文2022_デジタルツインにおける共創アプローチ
ナレッジモール論文2022_デジタルツインにおける共創アプローチ ナレッジモール論文2022_デジタルツインにおける共創アプローチ
ナレッジモール論文2022_デジタルツインにおける共創アプローチ Tsuyoshi Hirayama
 
Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」
Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」 Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」
Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」 Tsuyoshi Hirayama
 

Similar a ドメイン駆動設計の正しい歩き方 (20)

レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチレガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java
 
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
 
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
 
de:code 2019 Cloud トラック 総まとめ! 完全版
de:code 2019 Cloud トラック 総まとめ! 完全版de:code 2019 Cloud トラック 総まとめ! 完全版
de:code 2019 Cloud トラック 総まとめ! 完全版
 
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
 
Open Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfOpen Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdf
 
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~ IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
 
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT appsMAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
 
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
 
RDRA DDD Agile
RDRA DDD AgileRDRA DDD Agile
RDRA DDD Agile
 
クラウドを活かし、強みにするISVの可能性 桑原里恵
クラウドを活かし、強みにするISVの可能性 桑原里恵クラウドを活かし、強みにするISVの可能性 桑原里恵
クラウドを活かし、強みにするISVの可能性 桑原里恵
 
IBM Log Analysis with LogDNAを評価した話
 IBM Log Analysis with LogDNAを評価した話 IBM Log Analysis with LogDNAを評価した話
IBM Log Analysis with LogDNAを評価した話
 
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介20172017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
2017秋「クラウドファースト時代における基幹業務システム開発革新セミナー」 超高速開発を実現するIBMクラウドの最新情報ご紹介2017
 
DLLab 2018 - Azure Machine Learning update
DLLab 2018 - Azure Machine Learning updateDLLab 2018 - Azure Machine Learning update
DLLab 2018 - Azure Machine Learning update
 
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法
 
b→dash Pamphlet.pdf
b→dash Pamphlet.pdfb→dash Pamphlet.pdf
b→dash Pamphlet.pdf
 
基調講演「データのグループウェア化」
基調講演「データのグループウェア化」基調講演「データのグループウェア化」
基調講演「データのグループウェア化」
 
ナレッジモール論文2022_デジタルツインにおける共創アプローチ
ナレッジモール論文2022_デジタルツインにおける共創アプローチ ナレッジモール論文2022_デジタルツインにおける共創アプローチ
ナレッジモール論文2022_デジタルツインにおける共創アプローチ
 
Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」
Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」 Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」
Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」
 

Más de 増田 亨

ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善増田 亨
 
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述増田 亨
 
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer増田 亨
 
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイルプロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル増田 亨
 
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考えるソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える増田 亨
 
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かうビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう増田 亨
 
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指してアジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して増田 亨
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす増田 亨
 
SoR 2.0 summary
SoR 2.0 summarySoR 2.0 summary
SoR 2.0 summary増田 亨
 
毎日が越境だ!
毎日が越境だ!毎日が越境だ!
毎日が越境だ!増田 亨
 
SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築増田 亨
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方増田 亨
 
越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる増田 亨
 
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイルドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル増田 亨
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則増田 亨
 

Más de 増田 亨 (15)

ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
 
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
 
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
 
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイルプロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
 
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考えるソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
 
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かうビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
 
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指してアジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
 
SoR 2.0 summary
SoR 2.0 summarySoR 2.0 summary
SoR 2.0 summary
 
毎日が越境だ!
毎日が越境だ!毎日が越境だ!
毎日が越境だ!
 
SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
 
越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる
 
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイルドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
 

ドメイン駆動設計の正しい歩き方