SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
ドメイン駆動設計の
捉え方
2015/07/18版
アジェンダ
• 言葉の定義
• ドメイン駆動設計の原則
• 効果的なモデリングの要素
• 戦略的設計
• より深いドメインモデルへ向かうリファクタリング
• しなやかな設計
• ドメインの隔離方法
• まとめ
言葉の定義
ドメインとは?
• ドメインとは、ソフトウェアを利用する人達の
活動と関心ごと。
• ソフトウェアの利用は利用者の活動の一部なの
で、利用しないシーンも含めて活動の目的・背景
を理解することがドメインを理解するというこ
と。
モデルとは?
• モデルとは、膨大な知識を整理したシンプルで
わかりやすい図。
• 大量のinput情報に対して、本当に重要な情報だ
けを選別して、シンプルな表現でoutputするこ
と。
ドメインモデルとは?
• 対象領域において、プロジェクトメンバの頭の中
で構築された概念の集まり。
• 用語と概念の関係性を表現。
ドメイン駆動設計の
原則
• ドメインに集中する。
• ドメインモデルを探求する。
• ユビキタス言語を語る。
ドメインに集中する
• 一番複雑なのは、『ドメインそのもの(ユーザ
の活動やビジネス)』
• ドメインの複雑性を考慮して、設計すべき。
• 技術だけに注力して作られたソフトウェアはド
メインエキスパートの考え方と結びつかない。
• 業務中心 > 技術中心
ドメインモデルを探求する
• ドメインに対する深い理解と集中すべき主要な
概念を反映したモデルを作成する。
• ドメインエキスパートと開発者の共同作業でドメ
インモデルを作り上げていく。
• ドメインモデルは時間と共に進化する。
ユビキタス言語を語る
• ユビキタス言語により、ドメインエキスパートと
開発者を結びつける。
• ドメインモデルを作成するための共同作業は、
ドメインエキスパートと開発者で共通認識の言
語を形成していくプロセス。
• ユビキタス言語はコードやタスク・機能の記述
などでも利用
効果的な
モデリングの要素
・実装を通して、モデルにフィードバックをかけることが重要
ドメインモデルと実装を結びつける
・モデリングとプログラミングでメンバを分離しない
・モデルの持つ意図を実装に引き継ぐ
・ドメインモデルがプロジェクトの中心で、
他のドキュメントなどはモデルから言葉を取り出す
ドメインモデルに基づいて
言語を洗練させる
・最終的には、プロジェクトで流れ続ける情報を
体系化するためのツールとしてモデルを位置付ける
・データモデルと違い、振る舞いと業務ルールも表現する
知識豊富なドメインモデルを作成
・ドメインエキスパートの頭にある膨大な情報から
役に立つ知識をモデル化する
・開発メンバーが全員参加で作成する
・分析と設計の両方で利用できるモデルを作成
・イテレーションごとに重要な概念を追加し、
不要な概念を削除する
ドメインモデルを蒸留させる
・表現すべきことをより簡単に言う方法を見つける
・会話の表現がわかりやすいか、ぎこちないかを検証する
ドメインモデルの言葉をブレーンス
トーミングなどで実験する
・メンバ全員で一緒にモデルをかみ砕くことにより、
メンバ間のやりとりを変化させていく
戦略的設計
• 境界づけられたコンテキスト
• 蒸留
• 大規模な構造
境界づけられたコンテキスト
• 明示的に境界づけられたコンテキストを定義し
た上で、ドメインモデルを適用するのはコンテキ
スト内部に限定。
• コンテキスト同士の関係も定義することによっ
て、モデルの質が低下するのを避ける。(コン
テキストマップのこと)
蒸留
• モデルで最も価値がある領域をコアドメインと
いう。
• コアドメインを探す活動を蒸留という。
• コアドメインを見つけて、コアドメインをサポー
トする大量のモデルやコードから容易に区別す
る手段を提供すること
大規模な構造
• システムをおおよその構造から議論/理解できる
ようにするための枠組み。
• 個別部分を最適に構造化するよりも、モデル全
体としての扱いやすさを優先。
大規模な構造
∼責務のレイヤー∼
• ドメインモデル内にある概念上の依存関係を調
べて、自然な階層が認められたら、階層に抽象
的な責務を割り当てを実施。
• 階層は、ドメインの基本的な現実や優先事項を
伝える。
• 階層の責務を決める際は、技術的な意思決定と
いうより、ビジネス上の意思決定で行う。
大規模な構造
∼責務のレイヤーの例∼
依
存
関
係
DDD本より引用
蒸留 大規模な構造
依
存
関
係
DDD本より引用
戦略的設計のまとめ
• 「大規模な構造」と「蒸留」によって、ドメイ
ン内の複雑な関係を理解できるようになる一方
で、全体像を見失わずにいられる。
• 「境界づけられたコンテキスト」によって、別々
のシステムの作業を進めても、モデルを壊してし
まったり、意図せず断片化してしまったりする
ことがなくなる。
より深いドメインモデルへ
向かうリファクタリング
リファクタリングのレベル
マイクロリファクタリング
• コードを読みやすくするなど、技術視点で実
施。
ドメインリファクタリング
• ドメインについての新たな洞察から実施。
リファクタリングのアプローチ
• ドメインリファクタリングから開始。
• ドメインモデルのリファクタリングにおいて、ド
メインモデルに対する不満の原因が何であれ、
意図を明確かつ自然に伝達するようモデルを改
良する方法を探し出す。
コミュニケーションのぎこちなさ
• コミュニケーションのぎこちなさに敏感になる
ことによって、リファクタリングの候補を探す。
• ドメインエキスパートと開発者の両方ともドメイ
ンモデルにない語彙を使用したら警告サイン。
• 警告サインを好機と捉えて、その語彙を取り込
むことでドメインモデルとコードを改善する。
設計のぎこちなさ
• 以下のような複雑な箇所は、ドメイン側の活動
における目的や背景を改めて理解して、改善につ
なげる。
• 新しい要求が来るたびに複雑になっていく箇
所
• 説明しにくい複雑な業務ロジックが存在する
箇所
リファクタリングの最終目標
• コードが何をしているかを理解できるようにな
ることに加えて、コードで表現された背景を理
解できるようになること。
• これにより、ドメインエキスパートとのコミュニ
ケーションとコードが関連づき、より深いドメ
インモデルを探求できる。
大切なこと
• ドメインモデルと実装は、絶えず前進するだけの
プロセスではない。
• 初期のドメインモデルと実装では重要と思えな
かった問題が、困ったことになるのを防ぐため
に、頻繁にリファクタリングを行い、ドメイン
モデルと実装を改善するプロセスが大事。
しなやかな設計
概要
• 初期リリース以降も、プロジェクトの進行を加
速させるためには、変更に強い設計が必要不可
欠。
• しなやかな設計とは『変更に強い設計』と定
義。
テクニックの分類
抽象化
理解を容易にして、
詳細を隠 する
分割
適切な粒度を保ち
かつ依存関係を排除する
意図の明白な
インターフェース
副作用のない関数
表明
概念の輪郭
独立したクラス
閉じた操作
意図の明白なインターフェース
• クラス名/メソッド名は手段ではなく、目的が把
握できるユビキタス言語の名前を付与。
• ユビキタス言語にすることによって、チームメン
バーがすぐに意味を推測できる。
• 呼び出し側はインターフェースの内部処理を理解
不要。
副作用のない関数
• 複雑なロジックは、副作用のない関数によって、
安全に実行。
• 副作用とは、システムの状態に対して行われる、
あらゆる変更を意味。
• 呼び出し側で、副作用があるのか/ないのかを安全
に予測できることが重要。
• コマンドクエリ分離の考え方。
表明
• システムの状態を変更するメソッドは、表明に
よって特徴づける。
• 表明の具体的な表現方法としては、自動化され
たユニットテストで表現。
条件名 説明
事後条件
• 事後条件が操作の副作用なので、メソッドを呼び出すことで保証される
結果を記述
事前条件 • 事前条件とは事後条件が成り立つことを保証するために満たすべき条件
クラスの不変条件
• あらゆる操作が終わったときのオブジェクトの状態を宣言。集約全体の
整合性に関するルールを厳密に定義
概念の輪郭
• ドメインオブジェクトは、意味のある単位をよ
り直感的に使用したり、組み合わせたりできる
ような単位で分割。
• 最初から理想となる分割はできず、リファクタ
リングした結果によるもの。
✦ リファクタリングは技術視点ではなく、ド
メイン視点で実施。
独立したクラス
• 関連が多ければ多いほど、モデルは複雑になる
ので、オブジェクト間の関連は低結合になるよ
うに徹底的にやる。
閉じた操作
• 引数の型と戻り値の型が同じ場合は、閉じた操
作と呼ぶ。
• 閉じた操作にすることによって、引数と戻り値
が同じ型になるので、余計な概念を呼び込む必
要がなくなる。
• 操作の引数や戻り値に新たなクラスが登場する
と、新たな依存関係ができてしまう。
ドメインの隔離方法
何と隔離する?
• ドメインをシステムの他の機能から切り離すこ
とが重要。
• 他の機能とは、画面やデータの永続化の機能の
こと。
隔離手段
∼レイヤ化アーキテクチャ∼
• ドメイン駆動設計では以下4層に分離。
レイヤー名 説明
ユーザインターフェース層 • ユーザに情報を表示して、ユーザからの何らかのリクエストを解釈
アプリケーション層
• ビジネスルールや知識は含まない
• やるべき作業を調整するだけで、実際の処理はドメイン層に委譲
• ビジネス状況を反映する状態は保持しない
ドメイン層
• ビジネスの概念やビジネスルールを表現
• ビジネス状況を反映する状態はドメイン層で制御され、実際の格納処理
はインフラストラクチャに委譲
インフラストラクチャ層
• ドメインオブジェクトの永続化処理を行う
• アプリケーションのためのメッセージ送信
各レイヤの依存関係
• ドメイン層はどの層にも依存させない。
ドメイン層
ユーザインター
フェース層
アプリケーショ
ン層
インフラストラ
クチャ層
隔離する目的
• 本質的なビジネスの知識を捉えることが可能。
• プロジェクトが進むごとに蒸留しやすい設計。
• ソフトウェアの技術(htmlやsqlなど)に関係す
る概念と混同しなくなるので、ドメインを見失
うことを避ける。
まとめ
ドメイン駆動設計の成功
• 深いモデルによって、明確なビジョンがもたらさ
れ、そのビジョンが新しい洞察を生み出す。
• しなやかな設計によって継続的な変更が容易に
なる。
ドメイン駆動設計の成功
• 対象となるドメインを理解し、その理解をソフ
トウェアにおいて、具現化することを重視。
• ドメインモデルの品質に満足できないのは、ド
メインについて学び続けている証拠。
ドメインが存在する限り、
変化し続け
成長し続け
価値を届け続ける
ソフトウェアを作り続けることが重要
おまけ
DDDを理解するために
• DDD本には、ドメインモデルとコードを行った
り来たりして、深いドメインモデルを築き上げて
いく。
• 哲学書のDDD本をちょっとでも理解するために
は、本の内容と実践を行ったり来たりして、理
解を深めていくことが重要。
同じような考えで

Contenu connexe

Tendances

ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する増田 亨
 
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったことドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと増田 亨
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで増田 亨
 
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由増田 亨
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方増田 亨
 
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計増田 亨
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう増田 亨
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす増田 亨
 
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くかDDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くかKoichiro Matsuoka
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門増田 亨
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス増田 亨
 
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計するドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する増田 亨
 
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀増田 亨
 
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」 DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」 Koichiro Matsuoka
 
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2増田 亨
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意Yoshitaka Kawashima
 
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2  深いモデルの探求(ドメイン駆動設計 第3部)3週連続DDDその2  深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)増田 亨
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門増田 亨
 

Tendances (20)

ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
 
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったことドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
 
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
 
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
 
凝集度と責務
凝集度と責務凝集度と責務
凝集度と責務
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
 
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くかDDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
 
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計するドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する
 
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
 
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」 DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
 
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2  深いモデルの探求(ドメイン駆動設計 第3部)3週連続DDDその2  深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
 

En vedette

20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発Mao Ohnishi
 
オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版Mao Ohnishi
 
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?実践的な設計って、なんだろう?
実践的な設計って、なんだろう?増田 亨
 
20150616 dev love発表資料
20150616 dev love発表資料20150616 dev love発表資料
20150616 dev love発表資料Mao Ohnishi
 
AngularJSでの非同期処理の話
AngularJSでの非同期処理の話AngularJSでの非同期処理の話
AngularJSでの非同期処理の話Yosuke Onoue
 
ヤマオススメ@NGK2014
ヤマオススメ@NGK2014ヤマオススメ@NGK2014
ヤマオススメ@NGK2014Ryo RKTM
 
基礎からのCode Contracts
基礎からのCode Contracts基礎からのCode Contracts
基礎からのCode ContractsYoshifumi Kawai
 
初心者のためのWeb標準技術
初心者のためのWeb標準技術初心者のためのWeb標準技術
初心者のためのWeb標準技術Shogo Sensui
 
設計書からの卒業
設計書からの卒業設計書からの卒業
設計書からの卒業Fumiyasu Sumiya
 
コードレビューのススメ
コードレビューのススメコードレビューのススメ
コードレビューのススメkawahira kazuto
 
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)Koichi Sakata
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD増田 亨
 
Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Base DDD(ドメイン駆動設計) 参考文献を巡る旅Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Base DDD(ドメイン駆動設計) 参考文献を巡る旅Takuya Kawabe
 
ドメイン駆動設計再入門
ドメイン駆動設計再入門ドメイン駆動設計再入門
ドメイン駆動設計再入門Yukei Wachi
 
キレイなコードの書き方
キレイなコードの書き方キレイなコードの書き方
キレイなコードの書き方Takuya Kitamura
 
pandasによるデータ加工時の注意点やライブラリの話
pandasによるデータ加工時の注意点やライブラリの話pandasによるデータ加工時の注意点やライブラリの話
pandasによるデータ加工時の注意点やライブラリの話Masashi Shibata
 
カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後Joe_noh
 
FirefoxOSで学ぶJavaScript作法
FirefoxOSで学ぶJavaScript作法FirefoxOSで学ぶJavaScript作法
FirefoxOSで学ぶJavaScript作法cch-robo
 
Titanium 3.3 / 3.4 と iOS で気をつけたいこと
Titanium 3.3 / 3.4 と iOS で気をつけたいことTitanium 3.3 / 3.4 と iOS で気をつけたいこと
Titanium 3.3 / 3.4 と iOS で気をつけたいことRyutaro Miyashita
 

En vedette (20)

20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発
 
オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版
 
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?実践的な設計って、なんだろう?
実践的な設計って、なんだろう?
 
20150616 dev love発表資料
20150616 dev love発表資料20150616 dev love発表資料
20150616 dev love発表資料
 
AngularJSでの非同期処理の話
AngularJSでの非同期処理の話AngularJSでの非同期処理の話
AngularJSでの非同期処理の話
 
ヤマオススメ@NGK2014
ヤマオススメ@NGK2014ヤマオススメ@NGK2014
ヤマオススメ@NGK2014
 
基礎からのCode Contracts
基礎からのCode Contracts基礎からのCode Contracts
基礎からのCode Contracts
 
初心者のためのWeb標準技術
初心者のためのWeb標準技術初心者のためのWeb標準技術
初心者のためのWeb標準技術
 
設計書からの卒業
設計書からの卒業設計書からの卒業
設計書からの卒業
 
コードレビューのススメ
コードレビューのススメコードレビューのススメ
コードレビューのススメ
 
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
 
Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Base DDD(ドメイン駆動設計) 参考文献を巡る旅Base DDD(ドメイン駆動設計) 参考文献を巡る旅
Base DDD(ドメイン駆動設計) 参考文献を巡る旅
 
ドメイン駆動設計再入門
ドメイン駆動設計再入門ドメイン駆動設計再入門
ドメイン駆動設計再入門
 
sqldf for pandas
sqldf for pandassqldf for pandas
sqldf for pandas
 
キレイなコードの書き方
キレイなコードの書き方キレイなコードの書き方
キレイなコードの書き方
 
pandasによるデータ加工時の注意点やライブラリの話
pandasによるデータ加工時の注意点やライブラリの話pandasによるデータ加工時の注意点やライブラリの話
pandasによるデータ加工時の注意点やライブラリの話
 
カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後
 
FirefoxOSで学ぶJavaScript作法
FirefoxOSで学ぶJavaScript作法FirefoxOSで学ぶJavaScript作法
FirefoxOSで学ぶJavaScript作法
 
Titanium 3.3 / 3.4 と iOS で気をつけたいこと
Titanium 3.3 / 3.4 と iOS で気をつけたいことTitanium 3.3 / 3.4 と iOS で気をつけたいこと
Titanium 3.3 / 3.4 と iOS で気をつけたいこと
 

Similaire à ドメイン駆動設計の捉え方 20150718

社内 DDD 勉強会第1回
社内 DDD 勉強会第1回社内 DDD 勉強会第1回
社内 DDD 勉強会第1回shingo suzuki
 
社内 DDD 勉強会 #2
社内 DDD 勉強会 #2社内 DDD 勉強会 #2
社内 DDD 勉強会 #2shingo suzuki
 
これって、ドメイン駆動設計?
これって、ドメイン駆動設計?これって、ドメイン駆動設計?
これって、ドメイン駆動設計?Michitaka Yumoto
 
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~貴志 上坂
 
社内 DDD 勉強会 #5
社内 DDD 勉強会 #5社内 DDD 勉強会 #5
社内 DDD 勉強会 #5shingo suzuki
 
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう増田 亨
 
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】増田 亨
 
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】Tomoharu ASAMI
 
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法日本マイクロソフト株式会社
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門増田 亨
 
Slide computational design2019_11_191206
Slide computational design2019_11_191206Slide computational design2019_11_191206
Slide computational design2019_11_191206hiroshimadesignlab
 
Find Your Ability: IA for a novice Web Creator
Find Your Ability: IA for a novice Web CreatorFind Your Ability: IA for a novice Web Creator
Find Your Ability: IA for a novice Web CreatorNobuya Sato
 
これからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れこれからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れMitsuru Katoh
 
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション日本マイクロソフト株式会社
 
Vertex Perspectives | Low-Code Platforms (Japanese)
Vertex Perspectives | Low-Code Platforms (Japanese)Vertex Perspectives | Low-Code Platforms (Japanese)
Vertex Perspectives | Low-Code Platforms (Japanese)Vertex Holdings
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門KenjiroUehara
 
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い β20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い βRyo RKTM
 
.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019
.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019
.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019Hiroyuki Mori
 
NS study8 DDD Microservices Azuer Service Fabric
NS study8 DDD Microservices Azuer Service FabricNS study8 DDD Microservices Azuer Service Fabric
NS study8 DDD Microservices Azuer Service Fabric貴志 上坂
 
Unityでオニオンアーキテクチャ
UnityでオニオンアーキテクチャUnityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャtorisoup
 

Similaire à ドメイン駆動設計の捉え方 20150718 (20)

社内 DDD 勉強会第1回
社内 DDD 勉強会第1回社内 DDD 勉強会第1回
社内 DDD 勉強会第1回
 
社内 DDD 勉強会 #2
社内 DDD 勉強会 #2社内 DDD 勉強会 #2
社内 DDD 勉強会 #2
 
これって、ドメイン駆動設計?
これって、ドメイン駆動設計?これって、ドメイン駆動設計?
これって、ドメイン駆動設計?
 
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
 
社内 DDD 勉強会 #5
社内 DDD 勉強会 #5社内 DDD 勉強会 #5
社内 DDD 勉強会 #5
 
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
 
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
 
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
 
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法
【de:code 2020】 IT インフラをモダナイズ?今、検討すべきクラウドの活用方法
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
Slide computational design2019_11_191206
Slide computational design2019_11_191206Slide computational design2019_11_191206
Slide computational design2019_11_191206
 
Find Your Ability: IA for a novice Web Creator
Find Your Ability: IA for a novice Web CreatorFind Your Ability: IA for a novice Web Creator
Find Your Ability: IA for a novice Web Creator
 
これからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れこれからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れ
 
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
 
Vertex Perspectives | Low-Code Platforms (Japanese)
Vertex Perspectives | Low-Code Platforms (Japanese)Vertex Perspectives | Low-Code Platforms (Japanese)
Vertex Perspectives | Low-Code Platforms (Japanese)
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い β20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
 
.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019
.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019
.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019
 
NS study8 DDD Microservices Azuer Service Fabric
NS study8 DDD Microservices Azuer Service FabricNS study8 DDD Microservices Azuer Service Fabric
NS study8 DDD Microservices Azuer Service Fabric
 
Unityでオニオンアーキテクチャ
UnityでオニオンアーキテクチャUnityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
 

Plus de Mao Ohnishi

新規事業「Bill One」による Google Cloud 活用術
新規事業「Bill One」による Google Cloud 活用術新規事業「Bill One」による Google Cloud 活用術
新規事業「Bill One」による Google Cloud 活用術Mao Ohnishi
 
リモート拠点を立ち上げる楽しさと苦労
リモート拠点を立ち上げる楽しさと苦労リモート拠点を立ち上げる楽しさと苦労
リモート拠点を立ち上げる楽しさと苦労Mao Ohnishi
 
新規事業を 支える文化と加速させる技術 ~ devops / GCP / DDD ~
新規事業を支える文化と加速させる技術~ devops / GCP / DDD ~新規事業を支える文化と加速させる技術~ devops / GCP / DDD ~
新規事業を 支える文化と加速させる技術 ~ devops / GCP / DDD ~Mao Ohnishi
 
新規事業を加速させる技術
新規事業を加速させる技術新規事業を加速させる技術
新規事業を加速させる技術Mao Ohnishi
 
東京本社よりも地方開発拠点を活性化させるコツ!!!!
東京本社よりも地方開発拠点を活性化させるコツ!!!!東京本社よりも地方開発拠点を活性化させるコツ!!!!
東京本社よりも地方開発拠点を活性化させるコツ!!!!Mao Ohnishi
 
新メンバーが多いチームにおけるプロジェクトマネジメントのコツ(苦労話)
新メンバーが多いチームにおけるプロジェクトマネジメントのコツ(苦労話)新メンバーが多いチームにおけるプロジェクトマネジメントのコツ(苦労話)
新メンバーが多いチームにおけるプロジェクトマネジメントのコツ(苦労話)Mao Ohnishi
 
結果を出すチームビルディング術
結果を出すチームビルディング術結果を出すチームビルディング術
結果を出すチームビルディング術Mao Ohnishi
 

Plus de Mao Ohnishi (7)

新規事業「Bill One」による Google Cloud 活用術
新規事業「Bill One」による Google Cloud 活用術新規事業「Bill One」による Google Cloud 活用術
新規事業「Bill One」による Google Cloud 活用術
 
リモート拠点を立ち上げる楽しさと苦労
リモート拠点を立ち上げる楽しさと苦労リモート拠点を立ち上げる楽しさと苦労
リモート拠点を立ち上げる楽しさと苦労
 
新規事業を 支える文化と加速させる技術 ~ devops / GCP / DDD ~
新規事業を支える文化と加速させる技術~ devops / GCP / DDD ~新規事業を支える文化と加速させる技術~ devops / GCP / DDD ~
新規事業を 支える文化と加速させる技術 ~ devops / GCP / DDD ~
 
新規事業を加速させる技術
新規事業を加速させる技術新規事業を加速させる技術
新規事業を加速させる技術
 
東京本社よりも地方開発拠点を活性化させるコツ!!!!
東京本社よりも地方開発拠点を活性化させるコツ!!!!東京本社よりも地方開発拠点を活性化させるコツ!!!!
東京本社よりも地方開発拠点を活性化させるコツ!!!!
 
新メンバーが多いチームにおけるプロジェクトマネジメントのコツ(苦労話)
新メンバーが多いチームにおけるプロジェクトマネジメントのコツ(苦労話)新メンバーが多いチームにおけるプロジェクトマネジメントのコツ(苦労話)
新メンバーが多いチームにおけるプロジェクトマネジメントのコツ(苦労話)
 
結果を出すチームビルディング術
結果を出すチームビルディング術結果を出すチームビルディング術
結果を出すチームビルディング術
 

ドメイン駆動設計の捉え方 20150718