Submit Search
ドメイン駆動設計入門
Sep 26, 2013
112 likes
28,768 views
増田 亨
BPStudy #73 発表資料。
Read less
Read more
1 of 53
Download now
Downloaded 237 times
Recommended
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
アジャイル札幌 ドメイン駆動設計 基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
ドメイン駆動設計の考え方、3原則、基本テクニック 1章から7章
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
エヴァンス本を読んだことがない人、ネット上の情報を聞きかじったことがある程度の人、そんな人たちを対象に、ドメイン駆動設計について、わかりやすく説明してみました。
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
ドメイン駆動設計 のための オブジェクト指向設計 の基本と実装技法。
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
Java/Spring Boot/MyBatis/Thymeleafを使った、ドメイン駆動設計のサンプルコード。ビジネスルールに焦点を合わせ、計算モデルで複雑さを整理し、型指向のプログラミングで実装する、その具体例。
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
ドメイン駆動設計の要点は3つ。ビジネスルール・値オブジェクト・型
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
増田 亨
エヴァンスのドメイン駆動設計 「第3部 より深い洞察にむかうリファクタリング」を実践してみて学んだこと。
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
java_ja java_ja_ddd 2013-3-22 発表。ドメイン駆動設計(DDD)の実践
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
質問への回答(35件)を、ブログにまとめているのでこちらご覧ください https://little-hands.hatenablog.com/entry/2019/08/31/genba_de_ddd 「Mix Leap Study 特別編 - レガシーをぶっつぶせ。現場でDDD! コラボカンファレンス」登壇資料 ブログ:https://little-hands.hatenablog.com/ Twitter:https://twitter.com/little_hand_s 質問箱:https://peing.net/ja/little_hands
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
ドメイン駆動設計で、モデリングをどうやっているか、それをどう実装に結びつけているかの事例紹介。 RDRA+ICONXをベースに、より機敏なやり方への挑戦。実践的なオブジェクト指向設計。
ドメイン駆動設計入門
ドメイン駆動設計入門
Takuya Kitamura
関西Javaエンジニアの会'13 7月度 発表資料 http://kanjava.connpass.com/event/2740/
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
ドメイン駆動設計 Domain-Driven Design ( DDD ) 準備 / スタートアップ / ブラッシュアップ / チャレンジ / 参考書籍 /
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
関西DDD.java 勉強会 2016-3-5 (DDD Alliance 勉強会 2016-1-21 @東京の京都再演版)
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
Koichiro Matsuoka
技術書典8で発売予定だった「ドメイン駆動設計 モデリング/実装ガイド」 https://little-hands.booth.pm/items/1835632 発売記念に、本書内容の第3章の内容を解説するオンライン勉強会です。 特に前提知識は設定せず、本書をお持ちでなくても理解できる構成にする予定ですが、併せてお読みいただけるとより深く理解する助けになると思います。 3章より「DDD固有のモデリング手法」 集約とは 境界付けられたコンテキストとは sli.doを使って質疑応答 [前回イベント][https://ddd-community-jp.connpass.com/event/168674/) でお答えしきれなかったsli.doの質問にもお答えしようと思います。 ■協賛いただきました! Forkwell(株式会社grooves)様 https://forkwell.com/ ソニー株式会社 https://www.sony.co.jp/
RDRA DDD Agile
RDRA DDD Agile
増田 亨
越境アジャイル in 札幌。RDRA,ドメイン駆動設計,価値探索
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
ドメインロジックに焦点をあてる。 それが、ドメイン駆動設計の基本。 ドメイン駆動設計の考え方とやり方の説明と、実践基盤としての Spring Framework/Spring Boot を使った事例の紹介。
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
ドメイン駆動設計の4つの基本活動、Springのプログラミングモデル、ドメイン駆動設計のためのSpringの使い方
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
増田 亨
#devlove0409 講演資料 DDD Domain-Driven Design 「ソフトウェア開発でもっとも重要な仕事はドメインモデルの設計である」
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
ドメイン駆動設計でなぜ作るのか? ドメイン駆動設計の考え方 ドメイン駆動設計を実践するための6つの問い 事例研究 ドメイン駆動設計を現場に導入する 体験的に学ぶ エヴァンス本をちゃんと読む
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
増田 亨
設計スタイルの選択 ドメインロジックに焦点を合わせる 現場での実験結果と考察
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
増田 亨
2011/6/20 redajp
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
Koichiro Matsuoka
ドメイン駆動設計 モデリング/実装ガイド https://little-hands.booth.pm/items/1835632 発売記念に、本書の1,2章の内容を中心にDDDの概要について解説する勉強会です。
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
ドメイン駆動設計の考え方、ドメイン駆動設計を理解する三つのキーワード、エヴァンス本のススメ、レガシーに立ち向かう、マイクロサービスとドメイン駆動設計
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
増田 亨
ドメイン駆動設計に戦略的に取り組むための基本パターン「コアドメイン」について、4つの現場のインタビュー結果と、それをもとに、みんなで語り合ってみるワークショップ
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
より詳細なCQRSに関する資料はこちら https://little-hands.hatenablog.com/entry/2019/12/02/cqrs 参考資料:http://little-hands.hatenablog.com/entry/jjug2017fall 社内新規プロダクトでDDD, CQRSの思想をベースとしたアーキテクチャを構築し、コマンド(更新系処理)ではSpring Data JPA(Hibernate)を、クエリ(参照系処理)ではjOOQを採用しました。 結果としてそれぞれのORMの良いところを生かした組み合わせのアーキテクチャが構築できたので、その経緯と得られた知見についてお話ししたいと思います。 以下のようなトピックを考えています。 ・CQRSの定義とメリットデメリット ・DDD,CQRSを検討するにあたってのORMの選定ポイント ・構築したアーキテクチャ CQRSはDDDと切り分けて単独でも適用することができるので、DDDについてご存知ない方もご覧いただけます。日本語の文献は意外と少ないので、この辺りの分野に興味がある人の参考になれば幸いです。
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
第2シーズンに向けて、設計コースの内容と進め方について、説明会の資料
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
第1回 しょぼべん ( http://connpass.com/event/10849/ ) で話しした、イミュータブルデータモデル(世代編)です。
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?
増田 亨
Devlove 名古屋 2014-5-18 DDD, Object Oriented Design, ドメイン駆動設計 オブジェクト指向設計
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
More Related Content
What's hot
(20)
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
java_ja java_ja_ddd 2013-3-22 発表。ドメイン駆動設計(DDD)の実践
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
質問への回答(35件)を、ブログにまとめているのでこちらご覧ください https://little-hands.hatenablog.com/entry/2019/08/31/genba_de_ddd 「Mix Leap Study 特別編 - レガシーをぶっつぶせ。現場でDDD! コラボカンファレンス」登壇資料 ブログ:https://little-hands.hatenablog.com/ Twitter:https://twitter.com/little_hand_s 質問箱:https://peing.net/ja/little_hands
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
ドメイン駆動設計で、モデリングをどうやっているか、それをどう実装に結びつけているかの事例紹介。 RDRA+ICONXをベースに、より機敏なやり方への挑戦。実践的なオブジェクト指向設計。
ドメイン駆動設計入門
ドメイン駆動設計入門
Takuya Kitamura
関西Javaエンジニアの会'13 7月度 発表資料 http://kanjava.connpass.com/event/2740/
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
ドメイン駆動設計 Domain-Driven Design ( DDD ) 準備 / スタートアップ / ブラッシュアップ / チャレンジ / 参考書籍 /
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
関西DDD.java 勉強会 2016-3-5 (DDD Alliance 勉強会 2016-1-21 @東京の京都再演版)
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
Koichiro Matsuoka
技術書典8で発売予定だった「ドメイン駆動設計 モデリング/実装ガイド」 https://little-hands.booth.pm/items/1835632 発売記念に、本書内容の第3章の内容を解説するオンライン勉強会です。 特に前提知識は設定せず、本書をお持ちでなくても理解できる構成にする予定ですが、併せてお読みいただけるとより深く理解する助けになると思います。 3章より「DDD固有のモデリング手法」 集約とは 境界付けられたコンテキストとは sli.doを使って質疑応答 [前回イベント][https://ddd-community-jp.connpass.com/event/168674/) でお答えしきれなかったsli.doの質問にもお答えしようと思います。 ■協賛いただきました! Forkwell(株式会社grooves)様 https://forkwell.com/ ソニー株式会社 https://www.sony.co.jp/
RDRA DDD Agile
RDRA DDD Agile
増田 亨
越境アジャイル in 札幌。RDRA,ドメイン駆動設計,価値探索
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
ドメインロジックに焦点をあてる。 それが、ドメイン駆動設計の基本。 ドメイン駆動設計の考え方とやり方の説明と、実践基盤としての Spring Framework/Spring Boot を使った事例の紹介。
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
ドメイン駆動設計の4つの基本活動、Springのプログラミングモデル、ドメイン駆動設計のためのSpringの使い方
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
増田 亨
#devlove0409 講演資料 DDD Domain-Driven Design 「ソフトウェア開発でもっとも重要な仕事はドメインモデルの設計である」
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
ドメイン駆動設計でなぜ作るのか? ドメイン駆動設計の考え方 ドメイン駆動設計を実践するための6つの問い 事例研究 ドメイン駆動設計を現場に導入する 体験的に学ぶ エヴァンス本をちゃんと読む
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
増田 亨
設計スタイルの選択 ドメインロジックに焦点を合わせる 現場での実験結果と考察
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
増田 亨
2011/6/20 redajp
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
Koichiro Matsuoka
ドメイン駆動設計 モデリング/実装ガイド https://little-hands.booth.pm/items/1835632 発売記念に、本書の1,2章の内容を中心にDDDの概要について解説する勉強会です。
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
ドメイン駆動設計の考え方、ドメイン駆動設計を理解する三つのキーワード、エヴァンス本のススメ、レガシーに立ち向かう、マイクロサービスとドメイン駆動設計
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
増田 亨
ドメイン駆動設計に戦略的に取り組むための基本パターン「コアドメイン」について、4つの現場のインタビュー結果と、それをもとに、みんなで語り合ってみるワークショップ
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
より詳細なCQRSに関する資料はこちら https://little-hands.hatenablog.com/entry/2019/12/02/cqrs 参考資料:http://little-hands.hatenablog.com/entry/jjug2017fall 社内新規プロダクトでDDD, CQRSの思想をベースとしたアーキテクチャを構築し、コマンド(更新系処理)ではSpring Data JPA(Hibernate)を、クエリ(参照系処理)ではjOOQを採用しました。 結果としてそれぞれのORMの良いところを生かした組み合わせのアーキテクチャが構築できたので、その経緯と得られた知見についてお話ししたいと思います。 以下のようなトピックを考えています。 ・CQRSの定義とメリットデメリット ・DDD,CQRSを検討するにあたってのORMの選定ポイント ・構築したアーキテクチャ CQRSはDDDと切り分けて単独でも適用することができるので、DDDについてご存知ない方もご覧いただけます。日本語の文献は意外と少ないので、この辺りの分野に興味がある人の参考になれば幸いです。
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
第2シーズンに向けて、設計コースの内容と進め方について、説明会の資料
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
第1回 しょぼべん ( http://connpass.com/event/10849/ ) で話しした、イミュータブルデータモデル(世代編)です。
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
ドメイン駆動設計入門
ドメイン駆動設計入門
Takuya Kitamura
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
Koichiro Matsuoka
RDRA DDD Agile
RDRA DDD Agile
増田 亨
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
増田 亨
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
ドメイン駆動設計という設計スタイル
ドメイン駆動設計という設計スタイル
増田 亨
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
増田 亨
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
Koichiro Matsuoka
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
増田 亨
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
Viewers also liked
(20)
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?
増田 亨
Devlove 名古屋 2014-5-18 DDD, Object Oriented Design, ドメイン駆動設計 オブジェクト指向設計
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
増田 亨
DevLOVE現場甲子園2014 東日本大会 技
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
増田 亨
オブジェクト指向では、モデリング(分析)、設計、実装は、切れ目のない一体の活動。初期の分析は初期の設計であり、初期の実装。毎日分析し、毎日設計し、毎日実装しながら、一歩一歩、モデルも実装も進化させていく。
【基調講演】チームを強くするクラウド
【基調講演】チームを強くするクラウド
Cybozucommunity
クラウドサービス「cybozu.com」の提供開始から2年近く経ち、導入企業4,000社の中から多くの成功事例が生まれています。企業間プロジェクト、アジャイル(より素早いソフトウェア開発手法)、ワークスタイル変革、M2M2H(物と物、物と人のコミュニケーション)、運用のアウトソース、タブレット端末の活用など、さまざまな観点から新しいチームワークの流れを紹介します。
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
増田 亨
Devlove2012 カンファレンス 発表資料。 ドメイン駆動設計。アプリケーションアーキテクチャ、開発プロセス、設計スタイル。腕を磨く。
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Genya Murakami
ドメインモデルの育て方
ドメインモデルの育て方
増田 亨
BPStudy #82 2014/6/27 ギルドワークス「正しいものを正しくつくる」、市谷さんとの合体発表。 ドメイン駆動設計。
リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計
増田 亨
DevLove仙台 オブジェクト設計とリーン開発、その実践 変更しやすく、コードを改善する
ドメイン駆動設計を実践するプログラマーの悩み
ドメイン駆動設計を実践するプログラマーの悩み
haljik Seiji
DDD Alliance ドメイン駆動設計をやってみた 6つの現場からの報告 でお話させていただいた時の資料です
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
増田 亨
「ドメイン駆動設計」の第4部の概要と理解の手がかり。現場での実践経験から。
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
関西DDD.java ドメイン駆動設計の原則、全17章の要点、実践してみて学んだこと
深層学習の非常に簡単な説明
深層学習の非常に簡単な説明
Seiichi Uchida
「『内積』を知っている人に,深層学習の中身がだいたいわかってもらう」ことを目指しています.これぐらいをスタートに,理解を深めていけばいいのではないかと思いました.ちなみに学習(例えばback propagationあたりの)の部分については,特に触れていません.それ以前の基本の部分です. (2017.1.28, 少々補足スライドをいれて,初学者向けにさらにわかりやすくしたつもりです.) なお,ここで出てくる数式は,せいぜい足し算と掛け算ぐらいです.
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
勉強会に参加しないと不幸になる話
勉強会に参加しないと不幸になる話
なおき きしだ
OSC福岡 勉強会x勉強会での飛び込みLTのプレゼンに加筆しました。
たった50分でとりあえずひととおり分かった気にはなれるアジャイル入門【新装版】
たった50分でとりあえずひととおり分かった気にはなれるアジャイル入門【新装版】
陽一 滝川
以前公開したアジャイルの資料を2年振りに改めて社内で発表する機会を得たため、アップデート版を掲載致します。 http://www.slideshare.net/takigawa401/30-15760436 ※2012/03/27にSlideshareにて公開した過去資料です。 Slideshare有料化に伴いSpeaker Deckに移行しました。 旧URLはこちら。 https://speakerdeck.com/takigawa401/tatuta50fen-detoriaezuhitotoorifen-katutaqi-nihanareruaziyairuru-men-xin-zhuang-ban
生産管理システムの業務フロー(XEAD Modeler)
生産管理システムの業務フロー(XEAD Modeler)
watanabekozo
一般的な組立型生産管理システムの業務フローです。システムに関わる「職務(業務上の役割)」や「外部主体」同士の関係がデータフローの連係として示されています。システムが置かれた社会的文脈を表すという意味で「コンテキスト・ダイアグラム」と呼ばれることもあります。OSSのモデリングツールXEAD Modelerで描かれたもので、ツールの「スライドショー」の機能を用いてこのようにパラパラマンガのように動かせるようになっています。
プロトタイプとWebサイト設計のワークフロー
プロトタイプとWebサイト設計のワークフロー
kenji goto
WP-D Fes #03 in GMO Yours Web制作の最新事情を理解制作現場をいまこそアップデートしましょう!! Tokyo 2015.02.22.sun Osaka 2015.03.07.sat 動画埋め込み分は掲載しておりません。
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?
増田 亨
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
増田 亨
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
増田 亨
【基調講演】チームを強くするクラウド
【基調講演】チームを強くするクラウド
Cybozucommunity
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
増田 亨
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Genya Murakami
ドメインモデルの育て方
ドメインモデルの育て方
増田 亨
リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計
増田 亨
ドメイン駆動設計を実践するプログラマーの悩み
ドメイン駆動設計を実践するプログラマーの悩み
haljik Seiji
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその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分でとりあえずひととおり分かった気にはなれるアジャイル入門【新装版】
陽一 滝川
生産管理システムの業務フロー(XEAD Modeler)
生産管理システムの業務フロー(XEAD Modeler)
watanabekozo
プロトタイプとWebサイト設計のワークフロー
プロトタイプとWebサイト設計のワークフロー
kenji goto
Similar to ドメイン駆動設計入門
(20)
Synapse lakedatabase
Synapse lakedatabase
Ryoma Nagata
【中級者向け】Mapping Dataflow with Synapse Analytics Lake Database https://sqlserver.connpass.com/event/228774/
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
Tomoharu ASAMI
MaruLaboの浅海ゼミでの講座のスライドです。 https://www.marulabo.net/docs/asami24/ 作業分野「設計」についてアーキテクチャ設計、コンポーネント設計、ドメイン設計、UX/UI設計の順に 取り上げています。 前回、今回、次回の3回にわたってドメイン設計について説明しています。 ドメイン・モデルの設計では、対象のビジネス領域のモデルであるドメイン・オブジェクトとドメイン・オブジェクト を操作するメカニズムの2つの切り口があります。 今回はドメイン・オブジェクトの設計について説明しました。 次回はドメイン・コンポーネント設計、ドメイン・オブジェクト設計をふまえてドメイン設計の実現について説明する予定です。
アプリケーション・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第37回】
アプリケーション・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第37回】
Tomoharu ASAMI
クラウド・アプリケーションのアプリケーション・アーキテクチャのアプリケーション層を構成するアプリケーション・サブシステムについてCloud Native CBDの観点から説明を行います。
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
Tomoharu ASAMI
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
Daisuke Nishino
Open棟梁について - OSSコンソーシアム https://www.osscons.jp/dotNetDevelopmentInfrastructure/OpenTouryo/
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
Tomoharu ASAMI
MaruLaboの浅海ゼミでの講座のスライドです。 https://www.marulabo.net/docs/asami25/ 作業分野「設計」についてアーキテクチャ設計、コンポーネント設計、ドメイン設計、UX/UI設計の順に 取り上げています。 今回はドメイン設計の3回目で、ドメイン・モデルの実現(realization)について説明します。 オブジェクト指向分析・設計における設計モデルは実装方式を抽象化したモデルで、実装技術と深く結びついています。 Scalaによる実装と本講座用の仮想のコンポーネント・フレームワークの利用を前提に、ソースコードとの対応を含め設計モデルを具体的に考えていきます。
DDD 20121106 SEA Forum November
DDD 20121106 SEA Forum November
増田 亨
ドメイン駆動設計の実践 2nd version.
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
Tomoharu ASAMI
MaruLaboの浅海ゼミでの講座のスライドです。 https://www.marulabo.net/docs/asami19/ 作業分野「設計」の最初の作業としてアーキテクチャ設計を説明します。 アーキテクチャ設計におけるコンポーネントを軸にした論理モデルと物理モデルの関係を軸に、 アーキテクチャ中心、原理、パターン、DevOpsについて取り上げます。
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
Tomoharu ASAMI
MaruLaboの浅海ゼミでの講座のスライドです。 https://www.marulabo.net/docs/asami23/ 作業分野「設計」についてアーキテクチャ設計、コンポーネント設計、ドメイン設計、UX/UI設計の順に 取り上げています。 今回から3回にわたりドメイン・モデルの設計について取り上げます。 ドメイン・モデルの設計では、対象のビジネス領域のモデルであるドメイン・オブジェクトとドメイン・オブジェクト を操作するメカニズムの2つの切り口があります。 今回は後者をドメイン・コンポーネント設計として説明します。 次回はドメイン・オブジェクトの設計、次次回にドメイン設計の実現について説明する予定です。
Application Development Oveview
Application Development Oveview
Shinya Yanagihara
社内勉強会で使用した資料 アプリケーション開発に関する基礎知識を説明
設計モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第45回】
設計モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第45回】
Tomoharu ASAMI
MaruLaboの浅海ゼミでの講座のスライドです。 https://www.marulabo.net/docs/asami45/ クラウド・アプリケーション開発のための開発方法論の構築方法についてケーススタディを通してアプローチします。開発方法論の記述はEssence、クラウドアプリケーション向けにCloud Native CBDを適用します。 今回は設計モデルについて説明します。 前回作成した分析モデルはPIM(Platform Independent Model)と呼ばれるプラットフォーム非依存の 抽象的なアプリケーションをモデル化しますが、これからPSM(Platform Specific Model)と呼ばれる プラットフォームに特化したモデルを作成します。 またスケーラビリティや可用性といった品質属性への対応を行います。
Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127
Keita Onabuta
Azure Machine Learning Update Seminar Ignite 2019
プレゼンテーション・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第38回】
プレゼンテーション・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第38回】
Tomoharu ASAMI
MaruLaboの浅海ゼミでの講座のスライドです。 https://www.marulabo.net/docs/asami38/ クラウド・アプリケーションのアプリケーション・アーキテクチャのプレゼンテーション層を構成するプレゼンテーション・サブシステムについてCloud Native CBDの観点から説明を行います。 本講座ではWebを中心としたUI用のWebサブシステムとAPIを提供するAPIサブシステムの構成について考えます。
ドメイン・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第36回】
ドメイン・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第36回】
Tomoharu ASAMI
MaruLaboの浅海ゼミでの講座のスライドです。 https://www.marulabo.net/docs/asami36/ ラウド・アプリケーションのアプリケーション・アーキテクチャのドメイン層を構成するドメイン・サブシステムに ついてCloud Native CBDの観点から説明を行います。
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
Tomoharu ASAMI
MaruLaboの浅海ゼミでの講座のスライドです。 https://www.marulabo.net/docs/asami26/ 作業分野「設計」についてアーキテクチャ設計、コンポーネント設計、ドメイン設計、UX/UI設計の順に 取り上げています。 今回はドメイン設計の4回目です。 前回ドメイン・オブジェクト設計について取り上げましたが、ドメイン・オブジェクトの実現のために少し深掘りの内容を解説しました。 ドメイン・エンティティの種別、ドメイン・エンティティとドメイン・バリューの関係について説明しています。
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Daizen Ikehara
2012 年 12 月 7 日に実施した Webinar において NetAdvantage for WPF / Silverlight 2012 Volume2 の新機能を紹介したスライドです。
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
Fumiyasu Sumiya
JJUG CCC 2016 Fall にて発表した資料です。
ビジネス・モデリング 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第11回】
ビジネス・モデリング 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第11回】
Tomoharu ASAMI
MaruLaboの浅海ゼミでの講座のスライドです。 https://www.marulabo.net/docs/asami11/ オブジェクト指向開発のイテレーションを構成する最初の作業分野であるビジネス・モデリングについて説明します。
東北大学AIE - 機械学習中級編とAzure紹介
東北大学AIE - 機械学習中級編とAzure紹介
Daiyu Hatakeyama
機械学習のモデル作成は、多くの試行錯誤の中で行われ、終わりが見えません。直近数年は、更に効率的にモデル作成 を行う研究やそれらの実装が進んでいます。機械学習自身がブーム的に扱われがちであるが故、研究や技術的興味が 先行しがちです。結果、学習のためのデータに内包しているプライバシーやバイアスの取り扱い。そして、倫理観。そ して製造物としての説明責任が大きな問題になっています。ここでは、機械学習のモデル作成経験のある方を対象と して、学習処理の自動化や、モデルのブラックボックス化を最小化するための、最新の機械学習のツールをご紹介し ます。
データ仮想化を活用したデータ分析のフローと分析モデル作成の自動化のご紹介
データ仮想化を活用したデータ分析のフローと分析モデル作成の自動化のご紹介
Denodo
Watch full webinar here: https://bit.ly/3QM4bgI データ仮想化(Denodo)を活用した当社の考えるアーキテクチャーの中から今回はDenodoとプログラミング言語の一例としてPythonにフォーカスをあてて、データの理解・データの準備・モデル作成・評価・展開のフローとそれぞれで用いる仕組みと注目ポイントについてご紹介致します。 また分析モデル作成の自動化をご支援する仕組みとしてDataRobotの概要と注目ポイント についてもご紹介致します。
Synapse lakedatabase
Synapse lakedatabase
Ryoma Nagata
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
Tomoharu ASAMI
アプリケーション・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第37回】
アプリケーション・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第37回】
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
設計モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第45回】
設計モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第45回】
Tomoharu ASAMI
Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127
Keita Onabuta
プレゼンテーション・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第38回】
プレゼンテーション・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第38回】
Tomoharu ASAMI
ドメイン・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第36回】
ドメイン・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第36回】
Tomoharu ASAMI
設計/ドメイン設計(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
More from 増田 亨
(20)
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
増田 亨
要件定義・仕様化・実装の継ぎ目をなくす開発手法。 ビジネスロジックを軸に組み立てる。 値の種類(型)に注目してモジュール化する
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
増田 亨
CCSR開発手法のための、分析設計パターンの概略
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン
増田 亨
ドメイン駆動設計の内輪の勉強会用に作ったドメインオブジェクトの設計ガイドラインを公開します。
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
増田 亨
1995年まで:イノベータとアーリーアダプターの時代; 1995-2005 : オブジェクト指向ブームと混乱の始まり; 2005-2015 : さらなる混乱と収束の兆し; 2015- ; 現在の状況とこれからの20年
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
増田 亨
Javaで学ぶ、オブジェクト指向プログラミングの基礎知識。型とカプセル化が腹落ちすると、びっくりするくらいオブジェクト指向プログラミングがわかようになる/できるようになる
プロダクトづくりのためのソフトウェア設計スタイル
プロダクトづくりのためのソフトウェア設計スタイル
増田 亨
正しいものを正しくつくる プロダクトづくりの不確実性と戦うためのソフトウェア設計 - 創発的な設計活動 - 柔軟なモジュール構造 - 20%に投資する
ソフトウェア設計の学び方を考える
ソフトウェア設計の学び方を考える
増田 亨
ソフトウェア設計の課題 ソフトウエア設計の品質 学習と成長 設計の初歩を学ぶ 中級者への道 上級者の挑戦
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
増田 亨
ドメイン駆動設計でなぜ作るのか? ドメイン駆動設計の考え方の核心 レガシーコードの改善にドメイン駆動設計が役に立つのか? ドメイン駆動設計でレガシーコードに立ち向かった8つのステップ 振り返りと展望
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
アプリケーションの分割のアプローチ ●4つのアプローチ - ビジネスファンクション - 動詞/ユースケース - 名詞/リソース - 境界づけられたコンテキスト ● トランザクションの分割 - パイプライン化 (VETRO) - コーディネート (Saga) - 状態更新の非同期化 ( Event History - State Materialize - Domain Specific Query )
ビジネスルールの複雑さに立ち向かう
ビジネスルールの複雑さに立ち向かう
増田 亨
ビジネスルールのソフトウェア表現、現実世界のビジネスルール、ドメインモデルの俯瞰と構造化、事業モデルの俯瞰と枠組み 4つの領域をいったりきたりする。 広げながら掘り下げる。 役に立つソフトウェアを開発するスキルを磨いていく。
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
増田 亨
ドメイン駆動設計でなぜつくるのか? 「核心にある複雑さ」とは何か? その複雑さにどう立ち向かうか?
DDD sample code explained in Java
DDD sample code explained in Java
増田 亨
2019-02-18 #jsug ドメイン駆動設計サンプルコード徹底解説
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
増田 亨
変更を楽に安全にする4つの根底技法の紹介。
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
増田 亨
ドメイン駆動設計の基礎知識の説明と、ゲーム開発への活かし方。
SoR 2.0 summary
SoR 2.0 summary
増田 亨
事業環境と事業活動の変化に、柔軟に、迅速に、低コストで対応するためのアプローチの検討
毎日が越境だ!
毎日が越境だ!
増田 亨
エンジニアの学習と成長◆古い設計スタイルの呪縛を解く4つの合言葉◆「だいたいわかっている」の壁を突き抜ける5つの学習パターン
SoR 2.0 基幹システムの再定義と再構築
SoR 2.0 基幹システムの再定義と再構築
増田 亨
SoE, SoI の基盤となる次世代の SoR のあり方は何か? どこに着眼し、どういう方向を目指すか?
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
増田 亨
前半は、ドメイン駆動設計を特徴づける4つのポイントを、後半は、エヴァンス本の構成を俯瞰しながら、解説してみました。 gunma.web #30 での発表資料。
越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる
増田 亨
レガシー化した既存システムを、どのように改善・発展させていくか。アーキテクチャの設計改善への取り組みの中間報告。
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
増田 亨
ドメイン駆動設計の基礎知識として、プログラミングの基本単位としての「型」、型の生産者という設計スタイル、小さな実験を繰り返すという開発スタイルを簡単にまとめてみました。ちょっとディープな参考資料へのリンク付き。
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
増田 亨
事業活動モデル・システム機能モデル・ビジネスロジックの記述
事業活動モデル・システム機能モデル・ビジネスロジックの記述
増田 亨
ドメインオブジェクトの設計ガイドライン
ドメインオブジェクトの設計ガイドライン
増田 亨
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
増田 亨
オブジェクト指向プログラミング入門 -- 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 基幹システムの再定義と再構築
増田 亨
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
増田 亨
越境する情シス:進化可能なアーキテクチャを手に入れる
越境する情シス:進化可能なアーキテクチャを手に入れる
増田 亨
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
増田 亨
ドメイン駆動設計入門
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