Submit Search
Upload
ドメイン駆動設計入門
•
112 likes
•
28,638 views
増田 亨
Follow
BPStudy #73 発表資料。
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 53
Download now
Download to read offline
Recommended
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン
増田 亨
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
Koichiro Matsuoka
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
Recommended
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン
増田 亨
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
Koichiro Matsuoka
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
DDDモデリング勉強会 #6
DDDモデリング勉強会 #6
株式会社Jurabi
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
Koichiro Matsuoka
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
増田 亨
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
増田 亨
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
Koichiro Matsuoka
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
ドメイン駆動設計入門
ドメイン駆動設計入門
Takuya Kitamura
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
Takuya Sato
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
増田 亨
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
Koichiro Matsuoka
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?
増田 亨
More Related Content
What's hot
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
DDDモデリング勉強会 #6
DDDモデリング勉強会 #6
株式会社Jurabi
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
Koichiro Matsuoka
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
増田 亨
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
増田 亨
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
Koichiro Matsuoka
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
ドメイン駆動設計入門
ドメイン駆動設計入門
Takuya Kitamura
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
Takuya Sato
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
増田 亨
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
Koichiro Matsuoka
What's hot
(20)
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
DDDモデリング勉強会 #6
DDDモデリング勉強会 #6
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計入門
ドメイン駆動設計入門
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
Viewers also liked
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?
増田 亨
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
増田 亨
RDRA DDD Agile
RDRA DDD Agile
増田 亨
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
増田 亨
【基調講演】チームを強くするクラウド
【基調講演】チームを強くするクラウド
Cybozucommunity
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
増田 亨
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
増田 亨
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Genya Murakami
ドメインモデルの育て方
ドメインモデルの育て方
増田 亨
リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計
増田 亨
ドメイン駆動設計を実践するプログラマーの悩み
ドメイン駆動設計を実践するプログラマーの悩み
haljik Seiji
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
増田 亨
深層学習の非常に簡単な説明
深層学習の非常に簡単な説明
Seiichi Uchida
21世紀のソフトウェア技術者
21世紀のソフトウェア技術者
増田 亨
Effective java 輪読会 第6章 項目30-31
Effective java 輪読会 第6章 項目30-31
Appresso Engineering Team
Effective java 輪読会 第6章 項目32-34
Effective java 輪読会 第6章 項目32-34
Appresso Engineering Team
勉強会に参加しないと不幸になる話
勉強会に参加しないと不幸になる話
なおき きしだ
たった50分でとりあえずひととおり分かった気にはなれるアジャイル入門【新装版】
たった50分でとりあえずひととおり分かった気にはなれるアジャイル入門【新装版】
陽一 滝川
Viewers also liked
(20)
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
RDRA DDD Agile
RDRA DDD Agile
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
【基調講演】チームを強くするクラウド
【基調講演】チームを強くするクラウド
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
ドメインモデルの育て方
ドメインモデルの育て方
リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計
ドメイン駆動設計を実践するプログラマーの悩み
ドメイン駆動設計を実践するプログラマーの悩み
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
深層学習の非常に簡単な説明
深層学習の非常に簡単な説明
21世紀のソフトウェア技術者
21世紀のソフトウェア技術者
Effective java 輪読会 第6章 項目30-31
Effective java 輪読会 第6章 項目30-31
Effective java 輪読会 第6章 項目32-34
Effective java 輪読会 第6章 項目32-34
勉強会に参加しないと不幸になる話
勉強会に参加しないと不幸になる話
たった50分でとりあえずひととおり分かった気にはなれるアジャイル入門【新装版】
たった50分でとりあえずひととおり分かった気にはなれるアジャイル入門【新装版】
Similar to ドメイン駆動設計入門
Synapse lakedatabase
Synapse lakedatabase
Ryoma Nagata
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
Tomoharu ASAMI
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
Tomoharu ASAMI
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
Daisuke Nishino
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
Tomoharu ASAMI
DDD 20121106 SEA Forum November
DDD 20121106 SEA Forum November
増田 亨
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
Tomoharu ASAMI
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
Tomoharu ASAMI
Application Development Oveview
Application Development Oveview
Shinya Yanagihara
Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127
Keita Onabuta
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
Tomoharu ASAMI
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Daizen Ikehara
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
Fumiyasu Sumiya
ビジネス・モデリング 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第11回】
ビジネス・モデリング 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第11回】
Tomoharu ASAMI
東北大学AIE - 機械学習中級編とAzure紹介
東北大学AIE - 機械学習中級編とAzure紹介
Daiyu Hatakeyama
データ仮想化を活用したデータ分析のフローと分析モデル作成の自動化のご紹介
データ仮想化を活用したデータ分析のフローと分析モデル作成の自動化のご紹介
Denodo
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
日本マイクロソフト株式会社
組込みSW開発技術研究会キックオフミーティング
組込みSW開発技術研究会キックオフミーティング
静岡大学情報学部 組込みシステムアーキテクト研究所
中・大規模サイト作成業務フロー
中・大規模サイト作成業務フロー
senakamura
プログラムの大海に溺れないために
プログラムの大海に溺れないために
Zenji Kanzaki
Similar to ドメイン駆動設計入門
(20)
Synapse lakedatabase
Synapse lakedatabase
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
DDD 20121106 SEA Forum November
DDD 20121106 SEA Forum November
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
Application Development Oveview
Application Development Oveview
Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
ビジネス・モデリング 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第11回】
ビジネス・モデリング 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第11回】
東北大学AIE - 機械学習中級編とAzure紹介
東北大学AIE - 機械学習中級編とAzure紹介
データ仮想化を活用したデータ分析のフローと分析モデル作成の自動化のご紹介
データ仮想化を活用したデータ分析のフローと分析モデル作成の自動化のご紹介
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
【de:code 2020】 アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
組込みSW開発技術研究会キックオフミーティング
組込みSW開発技術研究会キックオフミーティング
中・大規模サイト作成業務フロー
中・大規模サイト作成業務フロー
プログラムの大海に溺れないために
プログラムの大海に溺れないために
More from 増田 亨
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
増田 亨
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
増田 亨
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
増田 亨
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
増田 亨
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
増田 亨
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
増田 亨
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
増田 亨
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
増田 亨
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
増田 亨
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
増田 亨
DDD sample code explained in Java
DDD sample code explained in Java
増田 亨
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
増田 亨
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
増田 亨
SoR 2.0 summary
SoR 2.0 summary
増田 亨
毎日が越境だ!
毎日が越境だ!
増田 亨
SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築
増田 亨
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
増田 亨
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
More from 増田 亨
(20)
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
DDD sample code explained in Java
DDD sample code explained in Java
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
SoR 2.0 summary
SoR 2.0 summary
毎日が越境だ!
毎日が越境だ!
SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
Recently uploaded
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Recently uploaded
(10)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
ドメイン駆動設計入門
1.
ドメイン駆動設計入門 2013年9月26日 有限会社システム設計 増田 BPStudy #73
2.
1.ソフトウェアの核心ドメインモデル 2.ドメインモデルとオブジェクト指向 3.ドメイン駆動設計のインプット 4.ドメインモデルの実装パターン アジェンダ
3.
1 ソフトウェアの核心 ドメインモデル
4.
業務システムの基本構成 画面 アプリケーション 連携 アプリケーション 帳票 アプリケーション データベース
5.
ドメインモデルパターン 画面 アプリケーション 連携 アプリケーション 帳票 アプリケーション データベース ドメイン モデル (ビジネス層) 業務の データとロジック
6.
ドメインモデル • 業務のデータと業務の機能をコードで表現 – ビジネス層に集約する –
関係するデータと機能をクラスにまとめる • ハイブリットなアプローチ – データの視点と機能の視点 • 両方からアプローチする • 二つの視点をいったりきたりする – データと機能の結びつき強める • クラスにカプセル化 • データ保持クラスと機能クラス(データ操作クラス) に分けるのはアンチパターン
7.
関連するデータと機能は クラスにまとめる 氏名 nameKana() originalFamilyName() 住所 line() city() 連絡 手段 firstChoice() change() changePriority() 連絡 履歴 unprocessed() lastThreeContacts() withinTwoMonths()
8.
ドメインモデルをみんなで使う 画面 アプリケーション 連携/バッチ アプリケーション 帳票 アプリケーション データベース 氏名 住所 連絡 履歴 連絡 手段 業務で使う データ+ロジックを ここに集約
9.
作る順番 データベース OR マッピング 2 5 アプリケーション サービス (API宣言) 3 ドメイン モデル 1 機能テスト 4
10.
なぜ ドメインモデル パターン で作るのか?
11.
コード量が減る
12.
• テストが減る • ドキュメントが減る •
バグ調査が楽になる • 変更の影響が見通しやすい コード量が減れば
13.
ドメインモデルは コードの重複を減らす • あちこちに分散しがちな業務ロジックを データ中心に整理し、集約する • いやな臭い –
データを要求する getter メソッド • そのデータを使うロジックが、別のクラスに分散 • あちこちのクラスに重複して書かれている危険な 兆候
14.
コードが膨張するアンチパターン • トランザクションスクリプト – 機能単位/画面イベント単位に業務ロジックを記述 –
あちこちの画面/帳票/外部連携に、似たロジック が繰り返し登場 – 使われない「共通業務ロジック」(共通部品構想の 残骸) • どこでも業務ロジック – ビュー記述に業務ロジックをべた書き – 画面コントローラに業務ロジックをべた書き – Data Access Object に業務ロジックをべた書き – SQL に業務ロジックをべた書き
15.
ドメインモデルに 業務ロジックを集めて 重複したコードを 減らしましょう
16.
アプリケーションの中核部品 画面 アプリケーション 連携 アプリケーション 帳票 アプリケーション データベース ドメイン モデル ここに 業務ロジックを 集める
17.
ドメインモデル 表面に見えるメリット • コード量が減る • 業務のロジックが書いてある場所が見つ けやすい •
業務のロジックを変更した時の影響範囲 が局所化される
18.
ドメインモデル ほんとうの価値 • 業務の知識の浸透 – ビジネス目標/システムの価値の理解 –
業務の全体像/基本の仕組みの理解 – 業務の現場にある肌感覚、現場の知恵 • 言語表現を超えた暗黙知が育つ – 業務アプリケーションの設計のコツ、かんどころ、 おとしどころ、… – 個人に内面化された価値観、方向感 – チームで共有化された価値観、方向感 • 「あたり」がつくようになる – 的外れの作業/とんでもない勘違い/手戻りが減る – 進むべき方向がわかりやすくなる
19.
2 ドメインモデルと オブジェクト指向設計
20.
個人的な話 • ドメイン駆動設計に出会って、オブジェ クト指向も便利と思うようになった • それまでは –
C言語で構造化プログラミング – Oracle データベース中心アプローチ + PL/SQL で手続き型プログラミング • 私にとってオブジェクト指向設計は、 ドメイン駆動設計の実践手段の一つ
21.
ドメイン駆動設計のための オブジェクト指向設計 • 部品化 • 条件分岐と多態 •
制御構造の再利用 • 全体の建てつけ
22.
部品化アプローチ • 集める – 関係するデータとロジックを一つのクラスに –
関連するクラス群をパッケージに • 目的に特化する – 特化:PersonName,Money, ScheduledDate, … – 汎用:String, BigDecimal, Date, … • 業務用語の粒度にあわせた部品 – 「予定日」とか「合計金額」がクラス候補 – クラス=データとロジックの置き場所
23.
区分と分岐 • 区分、種別 – 夏季料金/冬季料金 –
特別会員/一般会員 – 申請中/承認済/実行済 … • 条件分岐で記述? – if/else – switch case
24.
多態 インタフェース宣言と実装クラス • interface 季節料金 –
price () • 実装クラス – class 夏価格 implements 季節料金 – class 冬価格 implements 季節料金 • データとロジックの置き場所 – 夏の期間、夏の料金計算式 → 夏価格クラス – 冬の期間、冬の料金計算式 → 冬価格クラス • 使う側 – どの季節でも、季節料金#price() を呼ぶだけ
25.
多態 オブジェクトの生成と選択 Map<季節名,季節料金> 料金= [ “夏”
: new 夏価格(), “冬” : new 冬価格() ]; price( “夏” ) { 料金.get(“夏”).price(); } enum 季節 { 夏( new 夏価格()) , 冬( new 冬価格() ) ; private 季節料金 料金; 季節( 季節料金 料金) { this.料金 = 料金 } } // 画面アプリケーション // select ボックスを “夏” を選択 季節.valueOf( “夏” ).price() // OR マッピング enum 季節.夏 -> データベースに季節名を保存 データベースの季節名 -> enum.valuleOf(“夏” ) if 夏 return new 夏価格() else return new 冬価格() ※一か所だけ条件分岐が残る
26.
制御構造の再利用 • フレームワーク – IoC
: Inversion of Control (制御の反転) • Control = if/else, switch, for, try-catch-throw, goto … • Inversion:反転の意味 – アプリケーションプログラミング » 制御構造を書く → 制御構造を書かない • たとえば – コレクションフレームワーク と for 文 – バリデーションフレームワーク と if 文 – ORマッピングフレームワーク と for 文/if 文 – MVC フレームワークと switch 文
27.
全体の建てつけ アプリケーションサーバー • アプリケーション起動イベントのリスニング – HTTP
リクエスト、非同期メッセージ、メール受信 – データベース変更、File 追加 • 文脈(Context ) に沿ったアプリケーションの実行 – ターゲットのオブジェクト#メソッドを判定・起動 – 環境依存性の分離(リソースの間接参照 JNDI etc.) – 横断的関心事の実行 ロギング、セキュリティ、… • たとえば – Tomcat ( HTTP リクエストハンドラ) – Active MQ + Mule ESB ( 非同期メッセージハンドラ) – Jame ( メール受信ハンドラ)
28.
補足:パターンについて • パターン – アーキテクチャパターン
: PoEAA, EIP, … – GoF デザインパターン • 確立したパターンは、自分で書く必要はなくなりつつある – GoF のオブジェクト生成パターン • Spring : Bean コンテナ の Bean 生成機能 • Java : enum (singleton) – GoF の Strategy/State パターン • Java : enum – PoEAA のドメインモデルパターンとデータマッパ • OR Mapping ツール – PoEAA のフロントコントローラパターン • Spring MVC Dispatcher Servlet – EIP • Mule ESB
29.
3 ドメイン駆動設計の インプット
30.
主要なインプット ドメイン モデル 最初に手に入れるべき情報 いつも気にすべき情報 機能モデリングの元ネタ データモデリングの元ネタ アーキテクチャ スタイル プロセス スタイル オブジェクト指向 設計スタイル
31.
最初に手に入れるべき情報 全体イメージと方向感 • ビジネス企画書 – トップ向けのプレゼン資料 –
予算申請時の説明資料 • ドメインのガイドブック
32.
いつも気にすべき情報 フィードバック/実験結果 • 同僚の言葉 – ビジネス企画書の言葉を使っている? –
ドメインガイドブックの言葉を使っている? – それは画面イベント(ボタン)駆動では? – それはデータ操作命令では? • 利用者の反応/利害関係者の言葉 – モデルに登場しているか? – モデルで説明できるか?
33.
データモデリングの元ネタ • 画面 – ワイヤーフレーム –
項目定義書 • 帳票 – サンプル – レイアウト、項目定義書 • 既存データベース – DDL – ER 図 • 外部インタフェース – ファイル仕様書 – サンプルファイル
34.
機能モデリングの元ネタ • 機能要求 – 機能要求一覧 –
ユースケース一覧/ユースケース記述 – バックログアイテム、ユーザーストーリー、… – 画面遷移図、画面イベント一覧 • ユーザマニュアル、オンラインヘルプ – 既存システム – 類似システム • 業務体系 – 業務マニュアル – 組織表、職務分掌規程
35.
データと機能 ハイブリッドなアプローチ • データの視点 – 業務で使うデータを洗い出して構造化(データクラス) –
データの識別キーとデータ整合性 – 「一覧」や「合計」など導出データもクラスとして明示 • ロジックの置き場所の有力な「候補」 • 機能の視点 – 利用者のやりたいこと(機能要求) – 業務の手順、判断ロジック、計算式 – ユースケース、ユーザストーリー、バックログ – 画面遷移、画面イベント • 二つの視点をいったりきたりしながら – データに機能を寄せる – 機能にデータを寄せる
36.
ドメイン駆動設計の基本スタイル • アーキテクチャ – ドメインモデル中心 •
フレームワークの設計思想、利用例 – 非同期メッセージング • ビジネスがそう動いている • プロセス – フィードバックサイクル – 繰り返しのリズム – 身軽、機敏 • オブジェクト指向設計 – データ+ロジック – 目的特化 – 継続的な設計改善(リファクタリング)
37.
ケーススタディ プロジェクト初日のインプット • Aプロジェクト – ビジネス企画書の読み合わせ –
ドメインガイドブックの持ち寄り、ななめ読み • Bプロジェクト – 言語、ミドルウェア、フレームワーク、… – ツール、サーバー環境、コミットルール、… • Cプロジェクト – マスタースケジュール、組織体制図、会議体、… – WBS、マイルストーン、成果物、規約、… • Dプロジェクト – スプリント、バックログ、スタンダップミーティング、… – テスト駆動、ペアプログラミング、継続的デリバリ、…
38.
4 ドメインモデルの 実装パターン
39.
実装パターン • 目的特化 • かたまり •
永続化 • アプリケーションインタフェース
40.
目的特化 ドメインモデルの基礎部品 • 日付、期間、数量、金額、単位、名称、備考、… – String,
BigDecimal, Date など汎用部品をラッピングし た目的特化部品 – フィールド変数は、ひとつか二つ – 長さ、文字種、形式など目的特化で限定 – ロジックの置き場所 ( getter で値を返さない ) • Value Object パターン – 完全コンストラクタ • すべてのフィールド値を、生成時に決定 – 不変 • setter を書かない • 値の変更は、別のオブジェクトを生成して返す
41.
目的特化 ファーストクラスコレクション • コレクションだけを保持する特別クラス class ItemList
{ private List<Item> } • 汎用インタフェースを必要なものだけに限定 する – add() , size(), … • コレクションの操作ロジックを集約 – for 文 – 集合操作 – コレクションを他クラスに渡さない • どうしても必要なら 不変にして渡す
42.
目的特化 区分、種別、イベント/状態の宣言 • 静的に列挙できる場合 – enum
宣言 • インタフェース宣言+実装クラス群+Singleton Java コンパイラがやってくれる • 外部のマスター定義を読み込む場合 – Map + singleton • Spring の bean 生成 + autowired • イベント/状態 – クラスを分ける • イベント種類ごと • 状態種類ごと – 遷移ロジックをステートパターンで記述
43.
かたまりのパターン • Bounded Context –
チームの関心スコープを明確にする – ユビキタス言語 – 組織パターン • モジュール – 関心事の範囲を明確にするパッケージを宣言 – public スコープは最小限。基本はパッケージスコープ。 – モジュール間の依存関係を最少にする(方向、依存線の数) • Aggregate – 基礎部品 ( Value Oject ) の集合体 – 集合体の識別 • Aggregate の root オブジェクトとしての Entity パターン – 必要なら用途別に Aggregate を用意する • 顧客サマリー(一覧用), • 顧客連絡先 • 顧客履歴
44.
かたまりのパターン Aggregateの利用 • Repository – 業務の関心事「記録」を表現 –
Aggregate 単位の保存/取り出し – インタフェース宣言して実装と分離 • データアクセスへの依存性を逆転させる • Transfer – 業務の関心事「通知」を表現 – 必要なら通知専用の Aggregateを追加 • Factory – 業務の関心事としての Builder パターン • 「準備」や「用意」が複雑な場合
45.
Aggregateと永続化 • データモデルとオブジェクトモデル – データモデル
( データのみ ) • 正規化が原則 • 導出可能データは保存しない • すべての関係は、キーを元に 1 対多として構造化 • 参照方向は「多→1」に固定 • 構造的にデータ整合性を維持する – オブジェクトモデル(データ+ロジック) • 導出データもオブジェクトで表現する – ロジックの置き場所として重要 • 関連の表現の自由度が高い – ネットワーク構造、参照方向、多重度の制約 – データ整合性はロジックで維持する必要がある
46.
永続化 • SQL マッピングのすすめ –
正規化したデータモデルを、SELECT 文でオブ ジェクト用に冗長化してマッピングする • 危険な臭い – OR マッピングの隠ぺいや SQL自動生成 • オブジェクトが、データの入れ物の設計だけにな りがち • ドメインモデル(オブジェクトモデル)の設計改 善の制約になりがち
47.
サービス層 データベース OR マッピング 2 5 アプリケーション サービス (API宣言) 3 ドメイン モデル 1 機能テスト 4
48.
サービス層 アプリケーションインタフェース • アプリケーションインタフェース – アプリケーションとドメインモデルの接点 •
業務機能の宣言(ユースケースの実現) – 登録()、記録()、作成()、… – 参照()、検索()、絞り込み()、… – キャンセル()、取り消し()、訂正()、… • 業務手順の記述 – 検証() , 記録(), 通知() 3行程度の手続きを記述 – 判断、計算、加工はドメインモデルに委譲する
49.
おわりに
50.
アプリケーションの中核部品 ドメインモデル 画面 アプリケーション 連携 アプリケーション 帳票 アプリケーション データベース ドメイン モデル ここに 業務ロジックを 集める
51.
なぜドメイン駆動設計か? • コード量が減る – 重複しがちなコードを、データ構造を軸に整 理・統合する –
業務ロジックが、プレゼンテーション層、 データアクセス層から消えていく • 手戻りが減る – 業務の仕組み/こだわりポイント/やるべき こと • メンバー個人に内面化 • チーム共有の暗黙知の発達
52.
お誘い オブジェクト設計エクササイズ チームモデリングで学ぶドメイン駆動設計 2013/10/05 (土) 13:30
- 16:30 開催場所 : mixi 渋谷区東1-2-20 住友不動産渋谷ファーストタワー7F 参加費:五千円 内容: チームにわかれて、ドメインモデリングを実際にやってみる • イテレーション 3回を予定 • 業務知識が豊富なドメインモデルに育てる • モデルとコードを結びつける • モデルの洗練 • モデルの検証
53.
ありがとうございました
Download now