Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
意訳Domain-Driven Design
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
hiro@miraito
January 10, 2020
Programming
4
1.5k
意訳Domain-Driven Design
2020/01/10
DDDCJ DDD Talk MeetUp #3
@hirodragon112
hiro@miraito
January 10, 2020
Tweet
Share
More Decks by hiro@miraito
See All by hiro@miraito
沖田畷の戦い/Battle-of-Okitanawate
hirodragon112
0
300
ドメインを中心にしたプロダクト開発/domain-driven-product
hirodragon112
1
1.3k
僕がユースケース駆動開発をする理由/my-usecase-driven-development
hirodragon112
2
9.3k
ICONIXプロセスから学ぶオブジェクト指向モデリング/ICONIX for Object-Oriented
hirodragon112
4
4k
DDD時代に考えたいICONIXプロセス/ICONIX in DDD
hirodragon112
10
4.6k
概念投影によるオブジェクト指向設計の考え方とその方法/Conceptual projection design
hirodragon112
15
5.9k
カンファレンス主催者から見たCfPとプロポーザル
hirodragon112
0
2.2k
DDD導入に踏み切れない方へ贈る「2層 + CQS アーキテクチャ(Flyweight DDD)」/Flyweight DDD
hirodragon112
26
8.6k
Other Decks in Programming
See All in Programming
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
1k
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
390
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
180
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
310
2年のAppleウォレットパス開発の振り返り
muno92
PRO
0
190
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
370
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
180
Python札幌 LT資料
t3tra
7
1.1k
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.7k
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
180
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
220
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
180
Featured
See All Featured
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
160
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
320
Design in an AI World
tapps
0
140
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Color Theory Basics | Prateek | Gurzu
gurzu
0
190
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Balancing Empowerment & Direction
lara
5
860
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
59
42k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Mind Mapping
helmedeiros
PRO
0
62
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Transcript
意訳 Domain-Driven Design A Happy New Year !! 2020/01/10 DDDCJ
DDD Talk MeetUp #3 @hirodragon112
今日は 「DDDってなんだっけ?」 を改めて考えるきっかけになればと思っています
DDD ってご存じですか?
成瀬・允宣 ヴァーン・ヴァーノン エリック・エバンス
Domain-Driven Design Domain : 領域 領域 = (システム化する) 対象領域
Domain-Driven Design Driven : 駆動 駆動 = 動力を与えて動かすこと。
Domain-Driven Design Design : 設計 設計 =ある目的を具体化するためのもくろみ
Domain-Driven Design 直訳を繋げると ドメインを動力として設計する となるでしょうか。
いまいちよくわからない…
左下に船が 海坊主いる? ×印にお宝が よくわからないままだと 同じ地図を見ても視点によって見えるものが変わる
よくわからないと人はこうなる DDDとは… -ユビキタス言語が大切! - 単なるOOP? - エバンスの日記? - 設計ではなくコミュニケーションの話し? -
Repositoryって便利だね
DDD ってご存じですか?
今日はこの辺に切り込んだ話しをしてみたいと思います。
自己紹介 株式会社ミライトデザイン CEO/Founder 株式会社 Jocy CTO 上流から下流までプロダクト作成に必要な事はだいたいやりま す。 インフラ苦手です。 勉強会・カンファレンス
ペチオブ (https://phper-oop.connpass.com/) OOC (https://ooc.dev/) を主催しております。 Twitter : @hirodragon112
意訳Domain-Driven Design 目次 1. 意訳とは? 2. DDDはどこまでいっても設計論 3. 単一モデル 4.
HowとWhy 5. その先の世界
意訳とは? 原文の語句の一つ一つにこだわらず、 全体の意味に重点をおいて訳すこと。
意訳とは? 原文の語句の一つ一つにこだわらず、 全体の意味に重点をおいて訳すこと。 木を見ずに森を見よう
意訳とは? 原文の語句の一つ一つにこだわらず、 全体の意味に重点をおいて訳すこと。 木を見ずに森を見よう つまり訳者が存在する。 この資料で言えばhiroです
意訳とは? 原文の語句の一つ一つにこだわらず、 全体の意味に重点をおいて訳すこと。 木を見ずに森を見よう つまり訳者が存在する。 この資料で言えばhiroです これが地図を見る時の 視点となる
船で上陸で きそう お宝は隣の島 にありそう ×印にお宝が 視点を加えると見えやすくなる お宝のありかを示す地図です
意訳とは? 原文の語句の一つ一つにこだわらず、 全体の意味に重点をおいて訳すこと。 木を見ずに森を見よう つまり訳者が存在する。 この資料で言えばhiroです Domainの表現に集中できるよう に考慮された設計手法
意訳Domain-Driven Design 目次 1. 意訳とは? 2. DDDはどこまでいっても設計論 3. 単一モデル 4.
HowとWhy 5. その先の世界
DDDはどこまでいっても設計論 意訳の前にあえて一つ明言しておきます。
DDDはどこまでいっても設計論 DDDは パターン集でも コミュニケーションの道具でも 日記でもありません もちろん設計者がドメインエキスパートになれというような事で もありません
設計論です
DDDはどこまでいっても設計論 システム開発におけるリソースを 一番コアであり重要であるドメインの表現に極力割きたいのです。 ドメインをより正確に表現し、その他の要素の影響を気にするこ となく集中して設計、実装をしたいのです。
DDDはどこまでいっても設計論 これが意訳の前提を揃える説明でも書いた 「Domainの表現に集中できるように考慮された設計手法」 という事です。
DDDはどこまでいっても設計論 ここからはこの視点を元に細かい語句にこだわらず、 視点に重点を置いて意訳していきたいと思います。
意訳Domain-Driven Design 目次 1. 意訳とは? 2. DDDはどこまでいっても設計論 3. DDDの目的 4.
単一モデルとレイヤー分割 5. HowとWhy 6. その先の世界
DDDの目的 具体的にドメインに集中した設計を行うとは?
DDDの目的 1. ドメインエキスパートとドメイン知識を分析する 2. それをモデル化する 3. 分析モデルをそのまま実装モデルにも使用する 4. ドメインがアプリケーションの影響を受けない様にする 5.
実装時に発見した考慮漏れを1に戻り反映する こ こ に 時 間 を 使 い た い
DDDの目的 DDDとはたったこれだけの事を目指しているに過ぎません。 簡単だね!明日からどんどんやりましょう! 完
DDDの目的 ちゃんと解説します
DDDの目的 まず、そもそも我々の目的は何でしょうか? × DDDを導入する事 〇 DDDを導入する事で解決できる課題の恩恵を得る
DDDの目的 DDDが解決してくれる課題 - ドメインに対する分析 - 実装から分析へのフィードバック - このループの実現 言い換えると ドメイン分析の精度を高め、分析結果をそのままシステムとして
表現する事で最も複雑かつ重要なドメインを正確に表す質の高い ソフトウェアを開発できるようになる
DDDの目的 目指す世界 ドメインエキスパート 開発者 システム モデル 表現 実装 フィードバック 知識共有
発見 整理 フィードバック 使用 整理 発見 フィードバック
意訳Domain-Driven Design 目次 1. 意訳とは? 2. DDDはどこまでいっても設計論 3. 単一モデル 4.
HowとWhy 5. その先の世界
ドメインエキスパート 開発者 システム 分析モデル 実装 モデル フィードバック 分析モデルまで フィードバックし辛い 反映
よくある開発 実装
ドメインエキスパート 開発者 システム 分析モデル 実装 モデル ここの問題を解決する 必要がある よくある開発
ドメインエキスパート 開発者 システム 単一 モデル フィードバック フィードバック フィードバック 単一モデル
単一モデル 分析に使うモデルをそのまま実装に落とし込む
意訳Domain-Driven Design 目次 1. 意訳とは? 2. DDDはどこまでいっても設計論 3. 単一モデルとレイヤー分割 4.
HowとWhy 5. その先の世界
HowとWhy DDD目的 分析と実装を同じモデルを使用する 方法論 - ユビキタス言語で作成されたモデルを使用する - 境界コンテキストを分析する - Entity,
ValueObject, Repository 等の戦術的パターンを使用す る - レイヤードアーキテクチャにてドメインを隔離する
HowとWhy 方法論は目的ではない
ドメインエキスパート 開発者 システム システムの中身がユビキタス言語でできた モデルのまま実装されているので理解できる ユビキタス言語で作成した分析モデルを そのまま実装モデルとしてシステムに実装する ユビキタス言語で作成した分析モデルを そのまま実装モデルとしてシステムに実装する 重要
単一 モデル
HowとWhy だから我々は方法論を知る必要があるのです
意訳Domain-Driven Design 目次 1. 意訳とは? 2. DDDはどこまでいっても設計論 3. 単一モデルとレイヤー分割 4.
HowとWhy 5. その先の世界
その先の世界 単一モデルを実現するには方法論を知る以外にも重要な事がある - 単一モデルの適応範囲は? - ドメインとアプリケーションの境界を知る - UIとドメインの境界を知る その辺はまた別の機会にお話しできればと思います。
その先の世界 ご清聴ありがとうございました