SlideShare a Scribd company logo
ドメイン駆動設計とは何か
【入門編】
DDD Alliance 増田 亨
Gunma.web #30 2017-1-20
自己紹介
コード例 :https://github.com/system-sekkei/isolating-the-domain
ブログ:システム設計日記 http://masuda220.jugem.jp/
https://www.slideshare.net/masuda220/
コードを書くのが楽しくて、作ったソフトウェアを使ってもらえるとうれしい、どこにでもいる技術者
2
ドメイン駆動設計とは何か
What is Domain-Driven Design
3
お話しする内容
ドメイン駆動設計とは何か
考え方とやり方の特徴
エヴァンス本の概略
第1部 ドメインモデル
第2部 モデル駆動設計
第3部 深いモデル
第4部 大規模に適用する
4
ソフトウェア開発 の難しさ
複雑さ
不確定性
5
ドメイン駆動設計
ソフトウェア設計の
考え方とやり方
6
• ソフトウェア設計の、いろいろな考え方ややり方の集合体
• 構成する個々の要素に斬新なものはない
• 強調する要素、その組み合わせ方に特徴がある
複雑なのは「ドメイン」そのもの
ドメインの分析設計に焦点を合わせる
役に立つモデル、うまい実装は最初からは手に入らない
インクリメンタルに設計する
ドメイン駆動設計の考え方とやり方
7
複雑さをモデルで単純化し、モデルをもとづき実装する
モデルと実装を一致させる
要点を見極め、関係者で共通理解にするための道具
会話とラフスケッチ
ドメインに焦点を合わせる
ドメインの知識を獲得する
ドメインの知識を整理する
ドメインの知識をコードで表現する
この活動に時間とエネルギーを使う
8
モデルと実装を一致させる
複雑さの核心はドメインそのもの
ドメインの知識を広げる
ドメインの重要な点を見極めて
わかりやすく整理する(モデリング)
見極めた要点をコードで表現する
9
インクリメンタルに設計する
ドメインの知識が足りない
要点がはっきりしない
コードでうまく表現できない
ドメインを学びながら設計を改善
要点を探究しながら設計を改善
コード表現を工夫しながら設計を改善
10
会話とラフスケッチ
人の「学習能力」の基本手段
他者との意識合わせの基本手段
声に出すことの効果
絵にすることの効果
要点の見極め、基本構造を発見する
費用対効果の高い手段
小さいころから、訓練を積んできた
誰もが持っているスキルを活用する
11
スタイルの比較
12
ドメインに焦点を合わせる 技術に焦点を合わせる
要点を見極める 一覧管理と網羅性の重視
モデルと実装を一致させる モデルと実装を分離する
インクリメンタルに設計する アップフロントに設計する
会話とラフスケッチ 成果物の定義と作成
コードで表現 ドキュメントで表現
開発者がドメインを学ぶ
モデルと実装を一致させる
深いモデルを探求する
ドメイン駆動設計
エヴァンス本の基本構成
巨大な複雑さに立ち向かう
13
第1部
第2部
第3部
第4部
第1部
ドメインモデルを機能させる
開発者がドメインを学び(1章)
関係者で要点を意見交換しながら
意識を合わせ(2章)
見極めた要点(モデル)を
コードで表現する(3章)
14
第1部 要約
• 第1章 知識をかみ砕く
– ドメインを継続的に学習する
– ドメイン知識が豊富な設計
– ドメインを深く理解する
• 第2章 コミュニケーションと言語
– 言葉による意見交換/意識合わせ
– 声に出してモデリング
– 略式のUML図による議論の基盤/手がかり
• 第3章 モデルと実装を結びつける
– モデルと実装を一致させる
– そのための技法:オブジェクト指向
– モデリングと実装をシームレスな活動にする
モデルと実装を一致させる
(3章)
モデル
• 選び抜いた重要な側面
• 蒸留された本質的な知識
• 全体を形づくる主要な骨
組み
17
モデル
• 選び抜いた重要な側面
• 蒸留された本質的な知識
• 全体を形づくる主要な骨
組み
実装
• 大量かつ網羅的な記述が
• 重要ではないが、省略は
できない細部の記述
• 肥大化したコード、重複し
たコードとの戦い
18
モデル
• 選び抜いた重要な側面
• 蒸留された本質的な知識
• 全体を形づくる主要な骨
組み
実装
• 大量かつ網羅的な記述が
• 重要ではないが、省略は
できない細部の記述
• 肥大化したコード、重複し
たコードとの戦い
モデルと実装を関連づけることで、実装が整理され、見通しが良くなる
実装からフィードバックすることで、モデルが実用的になる
19
モデルと実装を一致させる技法
オブジェクト指向
判断/加工/計算ロジックの整理整頓
手続きに名前をつける(メソッド)
メソッドのグループに名前をつける(クラス)
ユーザ定義の型をつくる(クラス)
同じメソッド名で異なる型に対応する(多重定義)
型の関係を構造化する(部分型)
異なる型に使えるロジックの一元化(型パラメータ)
20
モデルと実装を一致させる技法
ユーザ定義型
基本のデータ型、標準ライブラリは汎用目的
値の範囲が広すぎる
使えるメソッドが多すぎる
ドメイン特化の独自の型を用意する/見つける
値の範囲を限定する
できる操作を限定する
ドメインの関心事とクラス名が一致する(一致させる)
わかりやすい
変更の影響範囲が、ドメインの感覚と一致する
21
第2部
モデル駆動設計の構成要素
ドメインロジックの
置き場所を定める(4章)
モデルの要素を
オブジェクトで表現する基本パターン(5章)
モデルと実装の一致を難しくする問題の
傾向と対策(6章)
モデル駆動設計の具体例(7章)
22
ドメインロジックの置き場所を定める
(4章)
プレゼンテーション層
データソース層
アプリケーション層
ドメインロジックの置き場所を独立させる
@Controller
@Service
@Repository
ドメインモデル
ここを
インクリメンタルに
成長させる
ドメインオブジェクトの
ライブラリ
ドメインロジックを
ここに集める
24
モデル要素を表現する基本パターン
(5章)
モデル要素を表現する基本パターン
• エンティティ
– 「識別」という関心事の表現
– 現実世界では、関心事をどうやって識別しているか
– それを、どうやって実装に反映するか
• 値オブジェクト
– 現実世界では、どんな値に関心があるか
– その値に必要な判断/加工/計算のロジックは
• サービス
– 値(状態)を持たないロジックだけの表現
– エヴァンスは、実践的なテクニックの一つといってい
るが …
モデル要素を表現する基本パターン
(エヴァンス本にない内容)
• コレクションオブジェクト
– どんなコレクション(要素のグループ、一覧)に関心が
あるか
– そのコレクションに対してでどんな判断/加工/計算
が必要か
• 区分オブジェクト
– 場合ごとのルールの違いはどうなっているか
• 複雑さの核心になることが多い
– どうやって表現するか
• strategyパターン/stateパターン
• Java enum型(サービス
モデルと実装の一致を難しくする問題
その傾向と対策
(6章)
モデルと実装の一致を難しくする問題
• オブジェクトの永続化
– 可能であれば、ドメインオブジェジェクトは、メモリ上に永遠に存在していてほしい
– それができない場合、どうするか?
– 関心事と永続化の実装を分離する
• Repository をインタフェースで宣言
• ドメインオブジェクトとテーブルのマッピングの外部化
• テーブル設計とオブジェクト設計の分離
• オブジェクトのネットワークの複雑化
– オブジェクトの参照関係の広がり/要点がぼやけてくる
– どこかで断ち切る
– 整合性とそれを維持するロジックに注目する( Aggregate 集約の設計)
– 参照関係の復元は、サービス層で行う
• (エヴァンス本には書いていないが)
– 画面の複雑さがドメインオブジェクトの集約(Aggregate)に持ち込まれがち
– Aggregteをデータのコンテナにしないことが基本
入門編としては、難易度が高いが、必ずぶつかる問題 …
ここでモデル駆動設計がだいなしになっている場合が多い…
第3部
より深い洞察に向かうリファクタリング
ブレークスルー(8章)
暗黙的な概念を明示的に(9章)
しやなかな設計(10章)
分析パターンの適用(11章)
デザインパターンを関係づける(12章)
より深い洞察に向かうリファクタリング(13章)
30
ブレークスルー
(体験から)
ブレークスルー
• 要点が見つかった
• 要点をうまくコードで表現できた
(良い名前が見つかった)
• あちこちのコードがすっきりした
• 修正が簡単だった(予測できた)
– ロジックの追加や変更
– 区分の追加や変更
ブレークスルーの助走
• 違和感への気づき
– 理解がずれている感
– コードのごちゃごちゃ感
– 忘れないようにする
• リファクタリングの基本の繰り返し
– 長いメソッドからメソッドを抽出
– 大きなクラスからクラスを抽出
– その時の抽出単位と名前付け(暗黙から明示へ)
– 値オブジェクト、コレクションオブジェクト、区分オブ
ジェクトによる整理
ブレークスルーが起きやすい時
• 区分の構造のリファクタリング
– 複数の分類軸が混在しているケースが多い
– 区分構造が整理できると、区分オブジェクトにデータ
やロジックを寄せやすくなる
• 画面構造、テーブル構造の影響からの脱却
– ドメイン層のパッケージ構造
– クラス構造(特に Aggregate)
– サービス層のメソッドの単位、引数、返す型
– リポジトリの単位、メソッドの引数、返す型
第4部
戦略的設計
境界づけられたコンテキストとコンテキス
トマップ(14章)
コアを蒸留する技法(15章)
大規模な構造(16章)
戦略をまとめあげる(17章)
35
第4部
戦略的設計
基本はいっしょ
(時間がかかる)
(範囲が広い)
ドメインに焦点を合わせる
モデルと実装を一致させる
インクリメンタルに設計する
会話とラフスケッチ
36
おまけ
境界づけられたコンテキスト
異なるコンテキスト間のマッピング
文脈の違いの具体例
• ソフトウェア設計の考え方とやり方
• 意見交換、情報交換が難しい
• 同じ言葉を使っていても、意図がうまく伝わら
ない
• プログラミングや設計は、開発者にとって、目
の前の生々しい課題
• 各自の言葉の使い方、とらえ方が一致しない
文脈の違い
• ソフトウェアの対象分野(ドメイン)
• 働き方(自社、受託/委任、フリーランス、…)
• 技法とその経験/習熟度
– 分析技法
– 設計技法
– 開発プロセス
• 利用技術
– 言語
• 型付けの違い、モジュール化の構文の違い
– フレームワーク/ライブラリ
– 実行環境
コンテキストのマッピング
• 境界づけられたコンテキスト
– それぞれの文脈(同じ言葉が同じ意味で通じる範
囲)を特定する
• 異なるコンテキスト間のマッピングを試みる
– 共同作業(目的、利害が一致する場合)
….
この中間にいろいろなパターンがある
– 別々の道(目的が異なり、利害も対立する場合)

More Related Content

What's hot

ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
 
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
Koichiro Matsuoka
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
増田 亨
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
 
ドメインモデルの育て方
ドメインモデルの育て方ドメインモデルの育て方
ドメインモデルの育て方
増田 亨
 
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考えるソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
増田 亨
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
Takuya Kawabe
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
 
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
増田 亨
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
増田 亨
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
 
ちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てるちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てる
増田 亨
 
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
増田 亨
 

What's hot (20)

ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
 
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
 
ドメインモデルの育て方
ドメインモデルの育て方ドメインモデルの育て方
ドメインモデルの育て方
 
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考えるソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
 
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
 
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
 
ちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てるちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てる
 
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
 

Similar to ドメイン駆動設計とは何か 【入門編】

20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発
Mao Ohnishi
 
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
増田 亨
 
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
Koichiro Matsuoka
 
社内 DDD 勉強会 #2
社内 DDD 勉強会 #2社内 DDD 勉強会 #2
社内 DDD 勉強会 #2
shingo suzuki
 
Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)
Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)
Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)
Koichiro Matsuoka
 
Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編
Yasuhito Yabe
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura
 
WEBデザイナーのためのエディタ入門 先生:金澤 直毅
WEBデザイナーのためのエディタ入門 先生:金澤 直毅WEBデザイナーのためのエディタ入門 先生:金澤 直毅
WEBデザイナーのためのエディタ入門 先生:金澤 直毅
schoowebcampus
 
Webデザイナーのためのエディタ入門
Webデザイナーのためのエディタ入門Webデザイナーのためのエディタ入門
Webデザイナーのためのエディタ入門
Naoki Kanazawa
 
FiNC DDD第一回勉強会
FiNC DDD第一回勉強会FiNC DDD第一回勉強会
FiNC DDD第一回勉強会
裕紀 重村
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
DIVE INTO CODE Corp.
 
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 OSAKA
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 OSAKAIncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 OSAKA
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 OSAKA
Game Tools & Middleware Forum
 
ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718Mao Ohnishi
 
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
Developers Summit
 
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法
日本マイクロソフト株式会社
 
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
A AOKI
 
2022_sakura-yube_ddd.pdf
2022_sakura-yube_ddd.pdf2022_sakura-yube_ddd.pdf
2022_sakura-yube_ddd.pdf
toshiki kawai
 
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
貴志 上坂
 
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い β20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い βRyo RKTM
 

Similar to ドメイン駆動設計とは何か 【入門編】 (20)

20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発
 
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
 
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
 
社内 DDD 勉強会 #2
社内 DDD 勉強会 #2社内 DDD 勉強会 #2
社内 DDD 勉強会 #2
 
Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)
Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)
Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)
 
Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
WEBデザイナーのためのエディタ入門 先生:金澤 直毅
WEBデザイナーのためのエディタ入門 先生:金澤 直毅WEBデザイナーのためのエディタ入門 先生:金澤 直毅
WEBデザイナーのためのエディタ入門 先生:金澤 直毅
 
Webデザイナーのためのエディタ入門
Webデザイナーのためのエディタ入門Webデザイナーのためのエディタ入門
Webデザイナーのためのエディタ入門
 
FiNC DDD第一回勉強会
FiNC DDD第一回勉強会FiNC DDD第一回勉強会
FiNC DDD第一回勉強会
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 OSAKA
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 OSAKAIncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 OSAKA
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 OSAKA
 
ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718
 
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
 
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法
 
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
 
2022_sakura-yube_ddd.pdf
2022_sakura-yube_ddd.pdf2022_sakura-yube_ddd.pdf
2022_sakura-yube_ddd.pdf
 
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
 
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い β20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
 

More from 増田 亨

ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
増田 亨
 
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
増田 亨
 
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
増田 亨
 
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
増田 亨
 
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイルドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
増田 亨
 
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイルプロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
増田 亨
 
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチレガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
増田 亨
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
 
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かうビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
増田 亨
 
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
増田 亨
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java
増田 亨
 
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指してアジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
増田 亨
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
増田 亨
 
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 基幹システムの再定義と再構築
増田 亨
 
越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる
増田 亨
 
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイルドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
増田 亨
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
 

More from 増田 亨 (20)

ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
 
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
 
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
 
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
 
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイルドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
 
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイルプロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
 
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチレガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かうビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
 
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java
 
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指してアジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
 
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 基幹システムの再定義と再構築
 
越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる
 
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイルドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
 

ドメイン駆動設計とは何か 【入門編】