2. 2
PROFILE
E n g a g e d w i t h
システム構築のプロセス評価、改善、策定、開
発フレームワークの設計、実装管理、プリセー
ルスやプロジェクトの立ち上げなど
2
C o m m u n i t y a n d
A c t i v i t i e s
ブログ :http://blog.processtune.com
プロフィール :Facebook, Twitter or MVP
コミュニティ :.NETラボの運営スタッフ
M i c r o s o f t M V P
July 2010 ~ Jun 2022
Current expertise : MVP for Developer Technologies
3. MOTIVATION
Re a d h i s b l o g
STOP doing dogmatic Domain Driven Design
M i c r o s o f t M V P
for Development Technologies (Canada)
H i s a c t i v i t i e s
YouTube
https://www.youtube.com/channel/UC3RKA4v
unFAfrfxiJhPEplw
Blog
https://codeopinion.com/stop-doing-
dogmatic-domain-driven-design/
3
His YouTube His Blog
4. DISCUSSION
D o m a i n D r i v e n D e s i g n
ユ ニ フ ァ イ ド ・ プ ロ セ ス
エ ン テ ィ テ ィ 、 バ リ ュ ー ・ オ ブ
ジ ェ ク ト
サ ー ビ ス ・ オ ブ ジ ェ ク ト
リ ポ ジ ト リ 、 フ ァ ク ト リ ー 、 ア
グ リ ゲ ー ト
モ デ リ ン グ の 重 要 性
4
7. E R I C E V A N S
To develop software for a complex domain, we need
to build Ubiquitous Language that embeds domain
terminology into the software systems that we build.
8. DDDは組織・製品・変更のモデリン
グ
Methodology・Framework Representative Implementation Modeling tool
CQRS (Command Query
Responsibility Segregation)
Representational State Transfer (REST)
Application Programming Interface (API)
Swagger
YAML
Unified Process Rational Unified Process (RUP).
Basic Unified Process
→Open Unified Process (OpenUP).
Agile Unified Process.
→Disciplined agile delivery (DAD).
Agile Modeling
Agile Data
Disciplined agile toolkit
Just Barely Good Enough (JBGE)
Architectural Envisioning
Lookahead modeling
Active Stakeholder participation
Model Storming (JIT modeling)
Candidates Responsibilities
Collaborators card modeling
Responsibility-driven design
Domain-driven design Service Oriented Architecture (SOA)
Microservices
Distributed computing
構築されるシステムの形としては
Event driven architecture Distributed system publish-subscribe communication model Service mesh Serverless computing
コンテキスト
ドメイン
モデル
ユビキタス言語
9. DDDは組織・製品・変更のモデリン
グ
Methodology・Framework Representative Implementation Modeling tool
CQRS (Command Query
Responsibility Segregation)
Representational State Transfer (REST)
Application Programming Interface (API)
Swagger
YAML
Unified Process Rational Unified Process (RUP).
Basic Unified Process
→Open Unified Process (OpenUP).
Agile Unified Process.
→Disciplined agile delivery (DAD).
Agile Modeling
Agile Data
Disciplined agile toolkit
Just Barely Good Enough (JBGE)
Architectural Envisioning
Lookahead modeling
Active Stakeholder participation
Model Storming (JIT modeling)
Candidates Responsibilities
Collaborators card modeling
Responsibility-driven design
Domain-driven design Service Oriented Architecture (SOA)
Microservices
Distributed computing
構築されるシステムの形としては
Event driven architecture Distributed system publish-subscribe communication model Service mesh Serverless computing
コンテキスト
ドメイン
モデル
ユビキタス言語
やり方 手順
表現方法
(合意形成方法)
11. DEVELOPMENT HISTORY(汎化)
11
Architecture-
centric
Data Centric
Process Centric
Component
Orientation
Executable
architecture baseline
Unified
Process
Iterative and
incremental
development
Architecture-centric
Risk-focused
Agile
Unified
Process
test-driven
development (TDD)
agile modeling (AM)
agile change
management
database refactoring
Disciplined
Agile
Delivery
Agile Unified Process
Extreme programming
Scrum
エンタープライズレ
ベル スケーリング
Disciplined
Agile
Toolkit
Disciplined Agile 4
Hybrid
Six lifecycles
Risk-focused
Elaboration phase
~2012 2013~
Enterprise
Unified
Process
Productionフェーズ
Retirementフェーズ
規律:Operations and Support
規律:その他
組織、企業IT、プロダクト・
ソリューションのライフサ
イクル
Iterative
and
incremental
development
Rapid Application
Development
Dynamic System
Development Method
Rational
Unified
Process
Unified ProcessのIBM
によるカスタマイズ
Open
Unified
Process
Agile approach subset
Agile modeling
規律を増やす
規律を減らす
規律を具体化
35. THANK YOU
U b i q u i t o u s L a n g u a g e
h t t p s : / / m a r t i n f o w l e r . c o m / b l i k i / U b i
q u i t o u s L a n g u a g e . h t m l
D o m a i n D r i v e n D e s i g n
h t t p s : / / m a r t i n f o w l e r . c o m / b l i k i /
D o m a i n D r i v e n D e s i g n . h t m l
P a t t e r n s o f E n t e r p r i s e
A p p l i c a t i o n
A r c h i t e c t u r e
h t t p s : / / m a r t i n f o w l e r . c o m / b o o k s
/ e a a . h t m l
L i n k s
36. THANK YOU
L i n k s
Domain-driven design : Wikipedia
https://en.wikipedia.org/wiki/Domain-driven_design
エリック・エヴァンスのドメイン駆動設計 : 書籍
https://www.shoeisha.co.jp/book/detail/9784798121963
Unified Process : Wikipedia
https://en.wikipedia.org/wiki/Unified_Process
Enterprise Unified Process : Wikipedia
https://en.wikipedia.org/wiki/Enterprise_Unified_Process
CMMI for Development, Version 1.3 : Carnegie Mellon University
https://resources.sei.cmu.edu/asset_files/TechnicalReport/2010_005_001_15287.pdf
DDDSample
https://github.com/citerus/dddsample-core
Rebecca Wirfs-Brock さんインタビュー( 前編 )
https://www.ogis-ri.co.jp/otc/hiroba/specials/Rebecca/interview1.html
37. THANK YOU
L i n k s
Domain Driven Design
https://domaindrivendesign.org/
Design a DDD-oriented microservice
https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/ddd-oriented-
microservice
ドメイン駆動設計・開発の実践
https://www.infoq.com/jp/articles/ddd-in-practice/
まずは、なぜDDDが必要なのかを考えるために
UPの規律は、Business Modeling、Requirements、Analysis and Design、Implementation、Test、Deployment
それに加えRUPの規律はConfiguration and Change Management、Project Management、Environment
AUPの規律は、Model、Implementation、Test、Deployment、Configuration Management、Project Management、Environment
図の規律のその他とは、Enterprise Business Modeling、Portfolio Management、Enterprise Architecture、Strategic Reuse、People Management、Enterprise Administration、Software Process Improvementを指しています。
図のSix lifecyclesとは以下の6つのライフサイクルを指します。
The Agile Life Cycle: A Scrum-based Project Life Cycle
The Lean Life Cycle: A Kanban-based Project Life Cycle
The Continuous Delivery:Agile Life Cycle
The Continuous Delivery:Lean Life Cycle
The Exploratory (Lean Startup) Life Cycle
The Program Life Cycle for a Team of Teams