Submit Search
Upload
ドメイン駆動設計 at DDD.rb #5
•
8 likes
•
5,192 views
啓 杉本
Follow
DDD.rb #5 における、ドメイン駆動設計についての発表
Read less
Read more
Technology
Report
Share
Report
Share
1 of 29
Download now
Download to read offline
Recommended
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?
増田 亨
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
Koichiro Matsuoka
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
Recommended
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?
増田 亨
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
Koichiro Matsuoka
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
Koichiro Matsuoka
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
Koichiro Matsuoka
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
A AOKI
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
Koichiro Matsuoka
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
ログの書き方がチームの生産性を爆上げする話
ログの書き方がチームの生産性を爆上げする話
Tsuyoshi Ushio
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Masashi Umezawa
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
データモデリング・テクニック
データモデリング・テクニック
Hidekatsu Izuno
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
増田 亨
私にとってのテスト
私にとってのテスト
Takuto Wada
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
Iocコンテナについて
Iocコンテナについて
Akio Terayama
WayOfNoTrouble.pptx
WayOfNoTrouble.pptx
Daisuke Yamazaki
ドメイン駆動設計の実践例 - 経営管理基盤 fusion_place -
ドメイン駆動設計の実践例 - 経営管理基盤 fusion_place -
啓 杉本
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
啓 杉本
More Related Content
What's hot
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
Koichiro Matsuoka
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
Koichiro Matsuoka
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
A AOKI
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
Koichiro Matsuoka
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
ログの書き方がチームの生産性を爆上げする話
ログの書き方がチームの生産性を爆上げする話
Tsuyoshi Ushio
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Masashi Umezawa
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
データモデリング・テクニック
データモデリング・テクニック
Hidekatsu Izuno
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
増田 亨
私にとってのテスト
私にとってのテスト
Takuto Wada
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
Iocコンテナについて
Iocコンテナについて
Akio Terayama
WayOfNoTrouble.pptx
WayOfNoTrouble.pptx
Daisuke Yamazaki
What's hot
(20)
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
ログの書き方がチームの生産性を爆上げする話
ログの書き方がチームの生産性を爆上げする話
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
データモデリング・テクニック
データモデリング・テクニック
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
私にとってのテスト
私にとってのテスト
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
Iocコンテナについて
Iocコンテナについて
WayOfNoTrouble.pptx
WayOfNoTrouble.pptx
Viewers also liked
ドメイン駆動設計の実践例 - 経営管理基盤 fusion_place -
ドメイン駆動設計の実践例 - 経営管理基盤 fusion_place -
啓 杉本
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
啓 杉本
Git入門
Git入門
小川 昌吾
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
増田 亨
メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −
メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −
JustSystems Corporation
KPTAふりかえり体験研修のご紹介
KPTAふりかえり体験研修のご紹介
ESM SEC
脚注をめぐる冒険
脚注をめぐる冒険
Keiichiro Shikano
MySQL入門
MySQL入門
小川 昌吾
English for programmers
English for programmers
Hirohito Kato
Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)
Tadahiro Ishisaka
BigQuery勉強会 Standard SQL Dialect
BigQuery勉強会 Standard SQL Dialect
Ken Morishita
2016年を振り返って
2016年を振り返って
Oda Shinsuke
Spring bootで学ぶ初めてのwebアプリ開発
Spring bootで学ぶ初めてのwebアプリ開発
terahide
ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版
Keiichiro Shikano
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
Yuya Unno
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Atsuhiro Kubo
キレイなコードの書き方
キレイなコードの書き方
Takuya Kitamura
Fighting history of CGFloat in Swift
Fighting history of CGFloat in Swift
Hirohito Kato
A4でまとめるClean architecture概要
A4でまとめるClean architecture概要
Hirohito Kato
プログラミングで言いたい聞きたいこと集
プログラミングで言いたい聞きたいこと集
tecopark
Viewers also liked
(20)
ドメイン駆動設計の実践例 - 経営管理基盤 fusion_place -
ドメイン駆動設計の実践例 - 経営管理基盤 fusion_place -
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
Git入門
Git入門
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −
メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −
KPTAふりかえり体験研修のご紹介
KPTAふりかえり体験研修のご紹介
脚注をめぐる冒険
脚注をめぐる冒険
MySQL入門
MySQL入門
English for programmers
English for programmers
Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)
BigQuery勉強会 Standard SQL Dialect
BigQuery勉強会 Standard SQL Dialect
2016年を振り返って
2016年を振り返って
Spring bootで学ぶ初めてのwebアプリ開発
Spring bootで学ぶ初めてのwebアプリ開発
ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
キレイなコードの書き方
キレイなコードの書き方
Fighting history of CGFloat in Swift
Fighting history of CGFloat in Swift
A4でまとめるClean architecture概要
A4でまとめるClean architecture概要
プログラミングで言いたい聞きたいこと集
プログラミングで言いたい聞きたいこと集
Similar to ドメイン駆動設計 at DDD.rb #5
財管一致について~財務会計と管理会計の関係性~
財管一致について~財務会計と管理会計の関係性~
啓 杉本
6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた
Hiroshi Ohnuki
20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう
Takuya Kawabe
【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます
【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます
智治 長沢
チームで開発を行う上の心構え
チームで開発を行う上の心構え
Hirotaka Osaki
ドメイン特化プラットフォームによる業務システム開発体制の変革
ドメイン特化プラットフォームによる業務システム開発体制の変革
啓 杉本
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev ops
裕貴 荒井
Spath for enterprise
Spath for enterprise
Koichiro Sumi
20140717 awssummit2014-cloud-operation
20140717 awssummit2014-cloud-operation
Yasuhiro Araki, Ph.D
yokyo-unv.
yokyo-unv.
hirano
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
陽一 滝川
sitTokyo2022_Dev_05_Kawanabe.pptx
sitTokyo2022_Dev_05_Kawanabe.pptx
ssuser5bff5a
「俺の背中について来い」アジャイルチームを一気に立ち上げる方法
「俺の背中について来い」アジャイルチームを一気に立ち上げる方法
Hiromasa Oka
GPS BoTもどきをつくろう (第3回 Home365祭り)
GPS BoTもどきをつくろう (第3回 Home365祭り)
Kenchi Hikita
わんくま同盟 大阪勉強会 #46
わんくま同盟 大阪勉強会 #46
Atsuo Yamasaki
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
満徳 関
connpass特徴と開発の流れ
connpass特徴と開発の流れ
Ikeda Yosuke
AppPotモバイルアプリ開発『内製化』
AppPotモバイルアプリ開発『内製化』
Ryohei Sogo
アジャイルにモデリングは必要か
アジャイルにモデリングは必要か
Hiromasa Oka
Azure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazug
Azure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazug
満徳 関
Similar to ドメイン駆動設計 at DDD.rb #5
(20)
財管一致について~財務会計と管理会計の関係性~
財管一致について~財務会計と管理会計の関係性~
6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた
20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう
【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます
【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます
チームで開発を行う上の心構え
チームで開発を行う上の心構え
ドメイン特化プラットフォームによる業務システム開発体制の変革
ドメイン特化プラットフォームによる業務システム開発体制の変革
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev ops
Spath for enterprise
Spath for enterprise
20140717 awssummit2014-cloud-operation
20140717 awssummit2014-cloud-operation
yokyo-unv.
yokyo-unv.
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
sitTokyo2022_Dev_05_Kawanabe.pptx
sitTokyo2022_Dev_05_Kawanabe.pptx
「俺の背中について来い」アジャイルチームを一気に立ち上げる方法
「俺の背中について来い」アジャイルチームを一気に立ち上げる方法
GPS BoTもどきをつくろう (第3回 Home365祭り)
GPS BoTもどきをつくろう (第3回 Home365祭り)
わんくま同盟 大阪勉強会 #46
わんくま同盟 大阪勉強会 #46
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
connpass特徴と開発の流れ
connpass特徴と開発の流れ
AppPotモバイルアプリ開発『内製化』
AppPotモバイルアプリ開発『内製化』
アジャイルにモデリングは必要か
アジャイルにモデリングは必要か
Azure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazug
Azure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazug
Recently uploaded
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
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
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Recently uploaded
(9)
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
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
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
ドメイン駆動設計 at DDD.rb #5
1.
ドメイン駆動設計 ユーザー、モデル、エンジニアの 新たな関係 DDD.rb #5 Dec.19, 2015 杉本
啓 twitter: @sugimoto_kei http://www.fusions.co.jp
2.
自己紹介 • 会計事務所系コンサルティング会社(アクセンチュア/アンダーセン)出身。 • 生産管理/会計系基幹システム構築
(スクラッチ開発, SAP R/3等) ~ 会計・経営管理領域の制度設計・業務改革 ~ パッケージソフト(連結会計)開発など。 • 2003年独立、経営管理基盤ソフトウェア「fusion_place」の開発販売・導入支援。 http://www.fusions.co.jp • 現役 Java プログラマ。OOPラブ × XPラブ × DOAラブ。 • 全然アップデートしていないブログあり。 http://hot-heart-cool-mind.seesaa.net/ • 「IT勉強宴会」で時々おしゃべり & いつも Drink! http://www.benkyoenkai.org/ <日経BP谷島さんによる紹介記事> http://business.nikkeibp.co.jp/article/campanella/20141016/272649/
3.
1. ドメイン駆動設計とは 2. ドメイン駆動設計の3つの原則 3.
3つの原則からみたDDD本の構成 4. ドメインとドメインモデル 5. ドメインモデルとは何か 6. ドメインに浸潤するドメインモデル 7. DDDの2つの「ひねり」 8. DDDとDOAの同型性 9. DDDの実践例 10. DDDの適用領域 11. DDDとオブジェクト指向 12. DDDの拡張可能性 13. ドメイン・エンジニアリング ~DDDの射程~ 目次
4.
「ドメイン駆動設計」とは ・・・根本的には、DDDを駆動している原則は次の3つだけです。 コアドメインに集中すること。 ドメインの実践者とソフトウェアの実践者による創造的な共同 作業を通じて、モデルを探求すること。 明示的な境界づけられたコンテキストの内部で、 ユビキタス言語を語ること。 DDD本(※)「日本語版への序文」by エリック・エヴァンス (※)エリック・エヴァンス, 2011年,「エリック・エヴァンスのドメイン駆動設計」翔泳社、以下同
5.
ドメイン駆動設計の3つの原則 ユビキタス 言語 モデル駆動 設計 (※)DDD本 表表紙と裏表紙のパターン関連図 適用範囲の選択 に関する原則 適用範囲での設計のあり方 に関する原則 コアドメイン 本日は、主に下側の2つの原則について考察します。 3つの原則のうち、2つ(ユビキタス言語とモデル駆動設計)は、原著発刊時 に書かれたパターン関連図(※)で中核に位置付けられている。 「コアドメイン」は、中核には位置付けられていなかったが、本文を読むと、 当初から重視されていたことがわかる。
6.
3つの原則からみたDDD本の構成 第1部 ドメインモデルを機能させる ⇒ユビキタス言語とモデル駆動の紹介 第2部
モデル駆動設計の構成要素 ⇒モデルと実装の結び付け方 第3部 より深い洞察に向かうリファクタリング ⇒モデルを洗練させる方法 第4部 戦略的設計 ⇒コアドメインへの集中の強調と、集中のための具体的手法 DDD本の構成 第2部の位置づけが難しい。 第2部を中心に読むと: オブジェクト指向の適用パターン本に見える。 その割には、内容に新味がない(2003年の原著発刊時点でも)。 とはいえ、多くの現場で出来ていないのは確かなので、啓蒙的効果はある。 でも、それでは、ユビキタス言語とモデル駆動を強調する意味がわからない...
7.
ドメイン・ドメインモデル・モデル駆動・ユビキタス言語の意味を、 あらためて、考えてみましょう。
8.
《質問》 ドメインモデルはドメインのモデルなのでしょうか?
9.
ドメインとドメインモデル 例: ソースコード管理システム ドメイン (問題領域) ソース コード 管理 Subversion Git 「コミット」の意味 「コミット」という言葉は、ドメインモデルの一部のはずですが... 「コミット」の定義はドメインにではなく、ツールに依存する。
ソースコード管理システムが世に現れて初めて「コミット」という言葉 が「リポジトリへの変更登録」という意味で使われ始めた。 セントラルリポジトリへの 変更登録 (登録時に競合があり得る) ローカルリポジトリへの 変更登録 (登録ににの競合はあり得ないが、別途、 push などでリポジトリ間同期必要) ツール (解決領域)
10.
ドメインモデルとは何か(1/2) ドメインモデルは: こちらではなく... ...こちらではないでしょうか。 問題領域(ドメイン)のモデル。 解決領域(ツール)のモデル。 但し、ソフトの内部構造ではなく、 ユーザも理解すべき、情報処理のモデル。 あらかじめ存在する、分析対象。
ソリューションの開発に際して、 意図的に設計する対象。 ドメイン・エキスパートが 知っている。 ドメイン・エキスパートの知見を踏 まえながら、我々エンジニアも考え る。 ドメインモデルは、ソリューションのモデル。 そしてエンジニアリングの結果、生まれるものである。
11.
ドメインモデルとは何か(2/2) DDD本では、船舶/コンテナが登場するモデルと、 船荷証券等が登場するモデルの差異を、深さの違いと捉えているが、 モデル化の対象が異なると考えた方が適切。 事業における、 具体的な活動。 事業活動を制御する 管理/統制活動。 モデル化対象 船舶 コンテナ 本船・次航 (vessel voyage) 船荷証券(B/L) DDD本での例 (p. 191-192) 【参考】 DOAでの呼称例(※) 事業過程 管理過程 「浅いモデル」 情報とその動き ヒト・モノ・カネ とその動き 「深いモデル」 (※)
佐藤正美, 2005年,「データベース設計論-T字形ER」, ソフト・リサーチ・センター、p.34-35 ドメインモデルは事業活動自体のモデルではなく、事業活動を支える情報処理 のモデル。両者は必ずしも一致しない。 《 問 題 領 域 》 《 解 決 領 域 》 事業活動の モデル ドメイン モデル モデル 相互依存
12.
ドメインに浸潤するドメインモデル 情報処理(解決領域)のモデルであるドメインモデルが、ドメイン(問題領 域)のモデルであるかのように見られがちなのは、多くのドメインが、ドメイ ンモデルにより浸潤されているから。 ドメイン 浸潤しているドメインモデル 会計 複式簿記
本来的には帳簿記録を組織化するためのひとつ の手法・パターンに過ぎない。 貿易 船荷証券 貿易慣行の中で確立され、法制度化された、取 引に関する事務処理パターン。 鉄道運行 ダイヤ 運行スケジュールを線引きするために工夫され た手書き図(ダイヤグラム)。これも事業活動 をサポートするための情報処理パターン。 モデリング UML モデリング自体は図的表記がなくとも可。UML でなくとも可。 ドメインモデルは情報処理のモデルだから、 コンピュータの登場以前に成立/普及している場合もある。 これらは容易に、ドメインそのものと混同されてしまう。
13.
二元的モデルと三元的モデル OOA※で一般的な モデル観 (DDD本 p.46) 分析モデル 設計モデル 問題領域/分析対象(=与件)
解決領域/設計対象 ドメインモデル の導入 事業活動の モデル プログラム構造 のモデル ドメイン モデル DDDの モデル観 (私見) 事業活動の モデル プログラム構造 のモデル ドメイン モデル ドメインモデル=ユビキタス言語 (単一のモデル) DDDのモデル観は一周回って二元的モデルに戻っているが、 境界線の位置が一般的なOOAとは異なっている。(私見) ※ オブジェクト指向分析
14.
DDDの2つの「ひねり」 DDDの 「ひねり」 2つの「ひねり」によって、DDDは、エンジニアリングの対象領域を広げつつ、 エンジニアリング活動内部の分裂を防止しようとしている(私見)。 事業活動のモデルと ドメインモデルの切り離し ドメインモデルと プログラム構造の統合 「ユビキタス言語」 「モデル駆動アプローチ」 ドメインモデルを、ユーザ所 有物から共同所有物に転化す る。 ドメインモデルとソースコー ドの乖離によるドメインモデ ルの形骸化を防ぐ。 DDDでは、以下の2つの「ひねり」を通じて「境界線の引き替え」を行って いる。
15.
DDDとDOAの同型性 DDDの 「ひねり」 DDDとDOA、根本的な発想は共通で、 実装に適用するパラダイム※とアプローチが異なる。 事業活動のモデルと ドメインモデルの切り離し ドメインモデルと プログラム構造の統合 当然の認識 佐藤正美:事業過程/管理過程 渡辺幸三:データモデルは帳簿組織 DSLによるドメインモデル 記述に基づく 自動生成/動的制御で対応 (モダンな)DOAでは... DOAは、ソフトウェア開発というより業務システム開発の現場で育ってきたた め、2つの「ひねり」は、むしろ当然の前提(当然過ぎて議論に上りにくい)。 ※ 分析や設計に適用する枠組み・文法
16.
DDDの実践例 ある連結会計パッケージの開発時、「資本連結」と呼ばれる複雑な会計処理に オブジェクト指向を適用した。 連結会計報告 の中に資本連結という 要件がある 持分計算表 オブジェクト 「持分計算表」 という計算の しくみ 事象活動の領域 情報処理の領域 コンピュータ処理の領域 問題領域 解決領域 問題領域
解決領域 • ドメインエキスパートの間では、持分計算表は古くから知られている。 • ただし標準化されたものではなく、このソフトウェア設計時にも独自の工夫が施された。 • モデルは、クラス/インターフェース/メソッド等オブジェクト指向を踏まえて作成された。. A. 業務担当者・会計士 (=ドメインエキスパート) B.エンジニア (=ドメインモデラー) 問題領域 【この時の役割分担】 解決領域 ※ 色付けは各役割が主に担当する分野。 (一元化されたドメインモデル) 問題領域 A. ドメインエキスパート +アナリスト(?) B. エンジニア 解決領域 (設計モデル) 問題領域(分析モデル) 【ありがちな役割分担】 事業活動領域と情報処理領 域の間の問題/解決対立構 造が見落とされてしまう。
17.
DDDの適用領域 DDD本は、エヴァンス氏の経験から生まれた。その経験は以下のようなプロ ジェクトを通じて培われたものである(DDD本「エピローグ」)。 1. 商用のPCB(プリント基板)設計用ソフトウェア 2. 複数の金融機関が利用するローンソフトウェア 3.
大手国際輸送会社の輸送業務システム 4. 商用の在庫管理ソフトウェア いずれも、継続的開発が当然で、汎用性や柔軟性を重視した設計が 見合う(コスト合理性がある)ケース。 3カ月で稼働/納品して後は最小限のメンテしかされないソフトではない。 4つのうち3つが商用パッケージソフトウェア。 残りひとつ(3)は、開発した企業の戦略的優位性の中核にあるようなソフト。
18.
DDDとオブジェクト指向 ユビキタス 言語 モデル駆動 設計 コア ドメイン エンティティ 値オブジェクト サービス … 原則レイヤのパターン群 実践レイヤのパターン群 オブジェクト指向には、 依存していない。 オブジェクト指向に 依存している部分が相当ある。 特に、ユビキタス言語の文法を 提示している第2章のパターン 群。 DDD本は、実践レイヤのパラダイムとしてオブジェクト指向を採用しているが、 DDDの原則自体はオブジェクト指向から独立している。 DDDは全体としてパターン言語を形成している。この言語は、「原則」レイ ヤと「実践」レイヤに分かつことが出来る。
19.
DDDの拡張可能性 DDDの原則はそのままに、プラクティス(実践手法)を入れ替えることで、 DDD自体を拡張できると思われる。 ユビキタス 言語 モデル駆動 コア ドメイン オブジェクト指向 リレーショナルモデル 多次元データモデル DDD本の DDD (モダンな)DOA (
≒超高速開発※2) DDD on fusion_place … … 汎用言語 DSL(※1) DSL (※1) DSL=ドメイン特化言語 (※2) 「超高速開発」は、開発が速くなることに価値を見出した呼称ですが、DDDの文脈ではむしろ、設計/開発の フォーカスをドメインモデルの(再)設計に移すことに価値を求めることが可能と思われます。 中核パラダイム 記述言語水準 開発アプローチ
20.
ドメイン・エンジニアリング ~ DDDの射程 ~ ドメインモデルを設計対象とするなら、我々は、ユーザとともに業務や取引の 方式を設計することも出来る。システム設計はもっとクリエイティブになる。 ドメイン
ドメインモデルパターン 販売/生産管理 ・MRPを代替/補完する「在庫推移監視方式」。 (※) 会計/経営管理 ・複式簿記の拡張形としての「増減複式簿記」。 ・複雑化する管理会計/財務報告に適した「二層帳簿モデル」。 ・変化する経営環境に追随する「環境適応型予算管理モデル」。 DDDの「原則」は、 DDD本が示している「実践」より、はるかに広く遠い射程を 持っているのではないでしょうか。 http://hot-heart-cool-mind.seesaa.net/article/393131426.html http://hot-heart-cool-mind.seesaa.net/article/393131365.html http://www.fusions.co.jp/mail-magazine/mm-003/ (※) 渡辺幸三, 2002年,「生産管理・原価管理のためのデータモデリング」, 日本実業出版社、p.188
21.
終わり
22.
≪おまけ≫ DDD + GP
= DSP-driven Development. - fusion_placeを題材に -
23.
経営管理ドメインの独自性 計画 計画/実績 報告 指図 実績記録 実行 経営管理 (Management) 取引処理 (Transaction Processing) 作業実施 (Operation) 活動レベル 自動倉庫 工作機制御 EOS POS 電子銀行... 販売管理 請求・支払 生産管理 受注・発注... ERP 超高速 開発 専用 システム 群 予算 経営報告 財務報告 販売計画 ... BI 表 計 算 企業活動 ITによる対応 従来 MI 今後 ERP 専用 システム 群 取引処理領域と経営管理領域では 情報処理ニーズが異なる 経営管理ドメインには取引処理ドメインとは異なるタイプの情報処理ニーズが存在します。この ニーズに的確に対応するソフトが無いため、現状は複数ツールの合わせ技で対応されている。 fusion_place
はこの現状を打破する意図で作られたドメイン特化基盤(DSP)である。
24.
DDD on fusion_place ドメイン特化基盤(DSP)の採用により、ドメインについての知識を持つ一 方で基盤寄りの開発スキルを持たないエンジニアがDDDを実践できるように なる。 管理会計制度 の中に事業別業績管理 という要件がある 「事業別P/L」 の保持・計算のしくみ 事象活動の領域
情報処理の領域 ドメインモデル 業務担当者 (=ドメインエキスパート) 問題領域 解決領域 モデリングパラダイム (DSPが提供するメタモデル) 問題領域 解決領域ドメインモデラー (=コンサルタント) 元帳(キューブ) ディメンション 事業別P/L元帳 配賦計算元帳 事業ディメンション 配賦種別ディメンション フォーム fusion_place 基盤(DSP) 配賦計算フォーム DSPがメタモデルを提供する ⇓ ・プログラミング自由度は減る。 ・ドメインにあった高級概念を使える。 ・より高度なシステムを、より短期間で 構築できる。 拘束する
25.
fusion_placeのメタモデル DSPは、ドメインにおけるニーズの共通性への洞察を踏まえ、適度に抽象化 されたドメインモデルを提供する。これがアプリケーションにとってはメタモ デルとなる。 (例)fusion_place のメタモデル(一部、要約) ディメンション 元帳
…多次元データ管理 汎用 式言語 テキスト式 (DSL) データアクセス制御 業務責任単位 入出力手段 フォーム定義(DSL)Excel-Link リンク領域定義 アクセス許可タイプ ワークフロー 元帳版 業務プロセス定義 業務プロセス 部署別 ワークスペース 締め管理
26.
DDD in fusion_place ドメイン特化基盤(DSP)の設計/開発は、通常のDDDそのもの。ただしそ のドメインモデルはアプリケーションレイヤのメタモデルである。 マネジメントインテリ ジェンスシステム(*) の構築 多次元データの 加工・処理・提示 のしくみ 事象活動の領域
情報処理の領域 ドメインモデル B. DSPモデラー 問題領域 解決領域 モデリングパラダイム (OOPメタモデル) 問題領域 解決領域 A. ドメインモデラー (=コンサルタント) エンティティ 値クラス 元帳(キューブ) ディメンション フォーム フォーム定義(DSL) Java etc.. 基盤(言語・インフラ) テキスト式(DSL) (*) 計画/分析/報告を含む経営管理のため の情報処理システムの包括的呼称。フュージョ ンズが提唱。 拘束する
27.
DDD + GP
= DSP-driven Dev. Generative Programming は、ソフトウェア開発を、ドメインエンジニアリン グ(ソフトウェアファミリ開発)とアプリケーションエンジニアリング(ソフ トウェアインスタンス開発)に分かつ。DDDは前者だけでなく後者にも適用 することができる。 DSPレイヤ アプリケーション レイヤ ドメインモデル ユビキタス言語 DSL モデリングパラダイム ドメインモデル ユビキタス言語 アプリケーション エンジニアリング ドメイン エンジニアリング 下位層のドメインモデルが 上位層にとってのモデリングの 枠組みを提供する。
28.
仕事のプロ、仕組みづくりのプロ、道具作りのプロの間で、フィードバックループがう まくつながるような業界になることを願っています。 業務のプロ (自社業務への精通+業務へのオーナーシップ) 業務設計(仕組みづくり)のプロ (ITの素養+業務設計力+ツールへの精通) 道具作りのプロ (ITの深い知識+要件の概念化・抽象化スキル) フィードバック重要 この図は、2010年8月18日の第1回関西IT勉強宴会で、fusion_place をご紹介した折にお示しした ものです。
29.
本当に終わり
Download now