Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Takuya Kitamura
PDF, PPTX
45,635 views
ドメイン駆動設計入門
関西Javaエンジニアの会'13 7月度 発表資料 http://kanjava.connpass.com/event/2740/
Engineering
◦
Read more
130
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 22
2
/ 22
3
/ 22
4
/ 22
5
/ 22
6
/ 22
7
/ 22
8
/ 22
9
/ 22
Most read
10
/ 22
11
/ 22
12
/ 22
13
/ 22
14
/ 22
15
/ 22
16
/ 22
17
/ 22
18
/ 22
19
/ 22
20
/ 22
Most read
21
/ 22
22
/ 22
Most read
More Related Content
PDF
ドメイン駆動設計 基本を理解する
by
増田 亨
PDF
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
by
A AOKI
PDF
ドメイン駆動設計 本格入門
by
増田 亨
PDF
ドメインオブジェクトの設計ガイドライン
by
増田 亨
PDF
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
PDF
ドメイン駆動設計 コアドメインを語り合ってみよう
by
増田 亨
PDF
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
by
Koichiro Matsuoka
PDF
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
ドメイン駆動設計 基本を理解する
by
増田 亨
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
by
A AOKI
ドメイン駆動設計 本格入門
by
増田 亨
ドメインオブジェクトの設計ガイドライン
by
増田 亨
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
ドメイン駆動設計 コアドメインを語り合ってみよう
by
増田 亨
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
by
Koichiro Matsuoka
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
What's hot
PDF
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
PDF
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
PDF
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
PDF
ドメイン駆動設計の正しい歩き方
by
増田 亨
PDF
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
PDF
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
PDF
3週連続DDDその3 ドメイン駆動設計 戦略的設計
by
増田 亨
PDF
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
by
Koichiro Matsuoka
PDF
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
PPTX
RLSを用いたマルチテナント実装 for Django
by
Takayuki Shimizukawa
PDF
Tackling Complexity
by
Yoshitaka Kawashima
ODP
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
by
pospome
PDF
ドメイン駆動設計をゲーム開発に活かす
by
増田 亨
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
ビジネスルールの複雑さに立ち向かう
by
増田 亨
PPTX
イベント・ソーシングを知る
by
Shuhei Fujita
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
PPTX
概念モデリング再入門 + DDD
by
Hiroshima JUG
PPTX
Redisの特徴と活用方法について
by
Yuji Otani
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
ドメイン駆動設計の正しい歩き方
by
増田 亨
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
3週連続DDDその3 ドメイン駆動設計 戦略的設計
by
増田 亨
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
by
Koichiro Matsuoka
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
RLSを用いたマルチテナント実装 for Django
by
Takayuki Shimizukawa
Tackling Complexity
by
Yoshitaka Kawashima
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
by
pospome
ドメイン駆動設計をゲーム開発に活かす
by
増田 亨
マイクロサービス 4つの分割アプローチ
by
増田 亨
ビジネスルールの複雑さに立ち向かう
by
増田 亨
イベント・ソーシングを知る
by
Shuhei Fujita
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
概念モデリング再入門 + DDD
by
Hiroshima JUG
Redisの特徴と活用方法について
by
Yuji Otani
Similar to ドメイン駆動設計入門
PDF
「ドメイン駆動設計」の複雑さに立ち向かう
by
増田 亨
PDF
ドメイン駆動設計とは何か 【入門編】
by
増田 亨
PDF
ドメイン駆動設計入門
by
増田 亨
PDF
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
by
啓 杉本
PDF
ドメイン駆動設計 at DDD.rb #5
by
啓 杉本
PDF
実践に向けたドメイン駆動設計のエッセンス
by
増田 亨
PDF
ドメイン駆動設計入門
by
Yukei Wachi
PDF
大阪DDD読書会ワークショップvol.1ガイダンス
by
kumamidori
PDF
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
by
Ryo RKTM
PDF
Loose and fluffy_ddd_intro
by
cch-robo
PDF
【書籍紹介】ドメイン駆動設計
by
株式会社ランチェスター
PPTX
20151110 ドメイン駆動設計によるサービス開発
by
Mao Ohnishi
PPTX
20100324 勉強会資料(ドメイン駆動)
by
Masayuki Kanou
PDF
20130202 ドメイン駆動設計読書会at名古屋のお誘い
by
Ryo RKTM
PDF
ドメイン駆動設計を実践するプログラマーの悩み
by
haljik Seiji
PDF
ドメイン駆動設計の捉え方 20150718
by
Mao Ohnishi
PDF
実践に向けたドメイン駆動設計のエッセンス
by
GuildWorks
PDF
ドメイン駆動設計の実践例 - 経営管理基盤 fusion_place -
by
啓 杉本
PPTX
ドメイン駆動設計入門
by
KenjiroUehara
PDF
QCon Tokyo 2013
by
増田 亨
「ドメイン駆動設計」の複雑さに立ち向かう
by
増田 亨
ドメイン駆動設計とは何か 【入門編】
by
増田 亨
ドメイン駆動設計入門
by
増田 亨
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
by
啓 杉本
ドメイン駆動設計 at DDD.rb #5
by
啓 杉本
実践に向けたドメイン駆動設計のエッセンス
by
増田 亨
ドメイン駆動設計入門
by
Yukei Wachi
大阪DDD読書会ワークショップvol.1ガイダンス
by
kumamidori
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
by
Ryo RKTM
Loose and fluffy_ddd_intro
by
cch-robo
【書籍紹介】ドメイン駆動設計
by
株式会社ランチェスター
20151110 ドメイン駆動設計によるサービス開発
by
Mao Ohnishi
20100324 勉強会資料(ドメイン駆動)
by
Masayuki Kanou
20130202 ドメイン駆動設計読書会at名古屋のお誘い
by
Ryo RKTM
ドメイン駆動設計を実践するプログラマーの悩み
by
haljik Seiji
ドメイン駆動設計の捉え方 20150718
by
Mao Ohnishi
実践に向けたドメイン駆動設計のエッセンス
by
GuildWorks
ドメイン駆動設計の実践例 - 経営管理基盤 fusion_place -
by
啓 杉本
ドメイン駆動設計入門
by
KenjiroUehara
QCon Tokyo 2013
by
増田 亨
More from Takuya Kitamura
PPTX
グローバル空調メーカーによるIoTプラットフォームへの挑戦
by
Takuya Kitamura
PPTX
Swiftにおけるclassとstructの使い分けをDDDから考える
by
Takuya Kitamura
PDF
サーバーレスアーキテクチャで実現するグローバル空調IoTプラットフォームへの挑戦
by
Takuya Kitamura
PDF
アジャイルの手法を取り入れたプロジェクトマネジメントの実例
by
Takuya Kitamura
PDF
jOOQの紹介
by
Takuya Kitamura
PDF
スマートデバイスSIの落とし穴と適した開発手法とは?
by
Takuya Kitamura
PDF
UXデザイン✕アジャイル✕受託開発
by
Takuya Kitamura
PDF
キレイなコードの書き方
by
Takuya Kitamura
PDF
大手ユーザー企業に入ってマネジメントでやってみたこと
by
Takuya Kitamura
PDF
AngularJSとバックエンドサービスAppPotで作る業務システムハンズオン
by
Takuya Kitamura
グローバル空調メーカーによるIoTプラットフォームへの挑戦
by
Takuya Kitamura
Swiftにおけるclassとstructの使い分けをDDDから考える
by
Takuya Kitamura
サーバーレスアーキテクチャで実現するグローバル空調IoTプラットフォームへの挑戦
by
Takuya Kitamura
アジャイルの手法を取り入れたプロジェクトマネジメントの実例
by
Takuya Kitamura
jOOQの紹介
by
Takuya Kitamura
スマートデバイスSIの落とし穴と適した開発手法とは?
by
Takuya Kitamura
UXデザイン✕アジャイル✕受託開発
by
Takuya Kitamura
キレイなコードの書き方
by
Takuya Kitamura
大手ユーザー企業に入ってマネジメントでやってみたこと
by
Takuya Kitamura
AngularJSとバックエンドサービスAppPotで作る業務システムハンズオン
by
Takuya Kitamura
Recently uploaded
PDF
krsk_aws_re-growth_aws_devops_agent_20251211
by
uedayuki
PDF
ソフトとハードの二刀流で実現する先進安全・自動運転のアルゴリズム開発【DENSO Tech Night 第二夜】 ー高精度な画像解析 / AI推論モデル ...
by
dots.
PDF
ソフトウェアエンジニアがクルマのコアを創る!? モビリティの価値を最大化するソフトウェア開発の最前線【DENSO Tech Night 第一夜】
by
dots.
PPTX
君をむしばむこの力で_最終発表-1-Monthon2025最終発表用資料-.pptx
by
rintakano624
PDF
2025/12/12 AutoDevNinjaピッチ資料 - 大人な男のAuto Dev環境
by
Masahiro Takechi
PDF
音楽アーティスト探索体験に特化した音楽ディスカバリーWebサービス「DigLoop」|Created byヨハク技研
by
yohakugiken
krsk_aws_re-growth_aws_devops_agent_20251211
by
uedayuki
ソフトとハードの二刀流で実現する先進安全・自動運転のアルゴリズム開発【DENSO Tech Night 第二夜】 ー高精度な画像解析 / AI推論モデル ...
by
dots.
ソフトウェアエンジニアがクルマのコアを創る!? モビリティの価値を最大化するソフトウェア開発の最前線【DENSO Tech Night 第一夜】
by
dots.
君をむしばむこの力で_最終発表-1-Monthon2025最終発表用資料-.pptx
by
rintakano624
2025/12/12 AutoDevNinjaピッチ資料 - 大人な男のAuto Dev環境
by
Masahiro Takechi
音楽アーティスト探索体験に特化した音楽ディスカバリーWebサービス「DigLoop」|Created byヨハク技研
by
yohakugiken
ドメイン駆動設計入門
1.
ドメイン駆動設計への手引き 関西Javaエンジニアの会'13 7月度 2013/07/31 @chipstar_light
2.
エリック・エヴァンスのドメイン駆動設計 エリック・エヴァンス (著), 今関
剛 (監修), 和智 右桂 (翻訳), 牧野 祐子 (翻訳) 出版社: 翔泳社 発売日: 2011/4/9 原書発売日: 2003/8/22 http://www.amazon.co.jp/エリック・エヴァンスのドメイン駆動設計 -IT-Architects’Archive-ソフトウェア開発 の実践-エリック・エヴァンス /dp/4798121967/
3.
今日のお話 ● DDD本の概略 ○ ドメイン駆動設計の基本的な考え方 ○
ドメインモデルの構成要素 ○ DDD本に沿って解説 ● DDDの目次 第1部 ドメインモデルを機能させる 第2部 モデル駆動設計の構成要素 第3部 より深い洞察へ向かうリファクタリング 第4部 戦略的設計 今日は ここ!
4.
ドメインモデルとは? ● モデル ○ 現実にある”もの”や”こと”を、関心毎に絞ってシンプルに図示したもの ○ 選び抜かれてシンプルにされ、意図的に組み立てられた知識の表現形式 ○
複数の人間の間で知識を共有するツール ● ドメインモデル ○ システム化の対象となるドメイン(業務)の知識を抽象化して図示したもの ○ ドメイン駆動設計を実践する上で、開発者とドメインエキスパートをつなぐ共通 の知識表現 ● ドメインエキスパート ○ プロジェクトに参加する業務の全体像を詳しく理解している人 ○ DDDにおけるドメインモデルはドメインエキスパートと共同で作り上げるもの
5.
例:貨物輸送システム ● ● ● 顧客が依頼した貨物の状況を追跡するシステム あらかじめ貨物を予約する 貨物が荷役の過程で所定の場所に到着した際に、自動的に請求書を顧客に送 付する
6.
ユビキタス言語 ● ドメインモデルを用いたチーム内での共通の言語 複雑な開発にはコミュニケーションが重要 ○ ドメインエキスパートと開発者はそれぞれ独自の専門用語で知識を表現し ようとしてしまう ○ ドメインモデルをコミュニケーションにおける共通言語としよう ○ ● ドメインモデルをユビキタスな言語にする ○
ユビキタス言語がプロジェクトの全てのメンバーに行きわたり、設計から開 発、モデルからコードまで全ての成果物に反映されていること ○ ドメインエキスパートはユビキタス言語を通してそのドメインの理解を適切 に伝えられているかを見極める ○ 開発者はユビキタス言語により設計の曖昧さが排除されているかを見極め る
7.
モデル駆動設計 ● モデルをそのまま実装に落とす手法 ○ ● モデルを基に、コードでそのモデルの概念やモデルそのものを表現する モデルとコードを緊密に関係づける ○ ドメインモデルをユビキタス言語にするためには、その内容をコードにも落と す必要がある ○ ドメインモデルとコードは常に整合性を保っていなければならず、それを実現 する手段としてモデル駆動設計を用いる ● 分析モデルと設計モデルという二分法を捨て去る ○
ビジネスドメインの理解のために分析モデルを作る事があるが、この用途の モデルでは実装の問題が留意されない ○ モデル駆動設計では、分析・設計の両側面から使える単一モデルを探し出す ようモデルを蒸留する
8.
ドメイン駆動設計とは? ● ドメインモデルを中心とした設計・開発手法 ● 開発者がドメインエキスパートと共同でドメイン知識を抽象 化したドメインモデルを作り上げる ●
ドメインモデルをユビキタス言語としてドメインの知識を共有 化する ● モデル駆動設計によりユビキタス言語化されたドメインモデ ルをそのまま実装に落とし込む ドメイン(業務)の変更につよいアジリティ の高いシステムを作る
9.
レイヤ化アーキテクチャ ● ドメインを隔離する ○ ○ ドメインオブジェクトをシステムの他の機能から切り離す ドメインオブジェクトが、UIやDBといったソフトウェアの概念から影響を受け にくくする
10.
モデルの構成要素 ● モデルを表現する要素 ○ ドメインオブジェクトは基本この3つの何れかに分類される Entities Value
Objects Services ● モデルのライフサイクル ○ ドメインオブジェクトのライフサイクルを表現・管理するためのパター ン Aggregates Factories Repositories
11.
Entities ● 抽象的な連続性と同一性 ○ 固有のIDを持ち、実装をまたいだとしても追跡されるような連続性を持つオ ブジェクト ○ 分散環境下でも、永続化前後でも追跡できないといけない ● 属性(状態)に左右されない同一性 ○ ○ 連続性を保証するIDは、オブジェクトの属性値に左右されない ○ 同一性の判断とライフサイクルは、モデル毎に個別に設計する 属性値が全て同じでもIDが異なれば別もの 属性値が異なっていてもIDが同じであれば同じもの ●
具体例 ○ 顧客、口座、注文、在庫、etc...
12.
Value Objects ● 連続性と同一性が不要なオブジェクト ○ ○ ○ 属性がどんな値であるかに焦点が置かれるもの 一過性のことも多く、操作のために生成されては破棄される 状態を変更できないもの(immutable)として扱う ●
他の何かの状態を記述する属性となる ○ 「何」であるかだけが問題となり、「誰」であるか、あるいは「どれ」であるか は問われないような設計の要素 ○ エンティティの属性としても使用される ● 具体例 ○ 色、量、地域、経路、etc...
13.
Services ● EntityやValueObjectには不自然な操作 ○ 1つの機能や処理が単体で存在していて、もの(オブジェクト)として扱うの が不自然なものもある ○ 操作であり状態を持たない ●
EntityとValueObjectのコントローラ ○ EntityとValueObjectの集合体で構築され、ドメインの能力をまとめ上げる スクリプトとしてふるまうものが多い ○ EntityとValueObjectは、ドメイン層の持つ能力への便利なアクセスを提供 するには、粒度が細かすぎる事が多いための対処 ● サービスはドメイン層だけのものではない ○ アプリケーション層やインフラストラクチャ層にもある ○ ビジネスに関係する処理を持つサービスだけをドメイン層に配置する
14.
適用例:EntitisとValueObjectsを区別する
15.
Aggregates(集約) ● オブジェクトのまとまりを作る ○ 関連するオブジェクトの集まりであり、データを変更するための単位 ○ モデル内にある参照をカプセル化するための抽象化 ● 各Aggregateにルートと境界を設ける ○
ルートはAggregateに含まれている特定の1エンティティ ○ 外部オブジェクトから参照できるのはルートのみ ■ 境界内のオブジェクトに対する処理はすべてルートを経由する ■ データベースに問い合わせて直接取得できるのはルートだけ ○ Aggregateに明確な所有権と境界を定義し、関連を最小限に抑える ● 境界内のオブジェクトに対する一貫性を保証する ○ ルートが境界内のオブジェクトの不変条件をチェックする ● 具体例 ○ 「注文」と「注文明細」、「車」と「タイヤ」や「エンジン」などの各種パーツ
16.
適用例:Aggregatesの境界を定義する
17.
Factories ● オブジェクトやAggregateの生成をカプセル化する ○ ○ ○ 生成されるオブジェクトとクライアントを疎結合に保つ 複雑になりがちな生成処理を隠蔽する 生成するオブジェクトの不変条件を強制する ● オブジェクトを再構築する ○ ○ ライフサイクル中に永続化されたオブジェクトを復元する処理 生成時とは異なる振る舞いになる ■ IDの採番や不変条件のチェック後の振る舞いなど ●
ファクトリはドメインモデルではない ○ オブジェクトの生成がドメイン上の重要な意味を持つ事がないため ○ 但し実装には必要なドメインの構成要素
18.
Repositories ● 永続化されたオブジェクトへのアクセス手段を提供する ○ ○ ○ ● オブジェクトのライフサイクルの中期を管理する ○ ○ ○ ● ファクトリは新しいオブジェクトを生成する リポジトリは古いオブジェクトを見つけ出す リポジトリ内部で発生する再構築処理はファクトリへ委譲する 集約ルートに対して一つのリポジトリを用意する ○ ● DB等の永続化インフラストラクチャをカプセル化する 複雑になりがちなデータストアに対するCRUD処理を隠蔽する オブジェクトのコレクションがメモリ上にあると錯覚させる 集約ルート以外のオブジェクトにグローバルなアクセスは提供しない ファクトリ同様ドメインモデルではない
19.
適用例:Repositoresを選択する
20.
まとめ ドメイン駆動設計を読んでみようと思った方は...
21.
京都DDD読書会告知 http://connpass.com/series/246/ ● 京都で行うDDDの読書会 ● 3週間に一度水曜日に開催 ● ○
次回はモデリングのワークショップ こんな人、大歓迎! ○ DDDを読もうと思ってたけど一人で読むの大変だった人 ○ これからDDDをやってみたい人 ○ これを機にDDDを読もうという人
22.
参考資料 ● DDD難民に捧げる Domain-Driven
Designのエッセンス ○ オブジェクトの広場 ○ http://www.ogis-ri.co. jp/otc/hiroba/technical/DDDEssence/chap1.html ● ドメイン駆動設計・アプリケーション構築編 ○ ストラテジック チョイス ○ http://d.hatena.ne.jp/asakichy/20110509/1304899807
Download