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
Strategic Domain-Driven Design: The missing lin...
Search
Manfred Steyer
PRO
May 28, 2019
Programming
2
1.2k
Strategic Domain-Driven Design: The missing link paving the way to your monorepo-based Angular architecture @NgVikings2019
[Example](
https://github.com/manfredsteyer/ddd
)
Manfred Steyer
PRO
May 28, 2019
Tweet
Share
More Decks by Manfred Steyer
See All by Manfred Steyer
The Price of Micro Frontends… and Your Alternatives @bastacon 2025 in Frankfurt
manfredsteyer
PRO
0
61
Your Architecture as a Crime Scene:Forensic Analysis @bastacon 2025 in Frankfurt
manfredsteyer
PRO
0
100
Modern Angular with Signals and Signal StoreNew Rules for Your Architecture @bastacon 2025 in Frankfurt
manfredsteyer
PRO
0
84
Effective Signals in Angular 19+: Rules and Helpers
manfredsteyer
PRO
0
840
Effective Signals in Angular 19+: Rules and Helpers @ngbe2024
manfredsteyer
PRO
0
480
Your Architecture as a Crime Scene: Improvements with Forensic Analysis
manfredsteyer
PRO
0
26
Micro Frontends Unmasked Opportunities, Challenges, Alternatives
manfredsteyer
PRO
0
440
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
280
Your Architecture as a Crime Scene: Improvements with Forensic Analysis @ijs Munich 2024
manfredsteyer
PRO
0
390
Other Decks in Programming
See All in Programming
Jakarta EE meets AI
ivargrimstad
0
670
読まないコードリーディング術
hisaju
0
120
推しメソッドsource_locationのしくみを探る - はじめてRubyのコードを読んでみた
nobu09
2
360
なぜイベント駆動が必要なのか - CQRS/ESで解く複雑系システムの課題 -
j5ik2o
14
4.8k
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
260
クリーンアーキテクチャから見る依存の向きの大切さ
shimabox
5
1.1k
Datadog Workflow Automation で圧倒的価値提供
showwin
1
310
CloudNativePGを布教したい
nnaka2992
0
120
Go 1.24でジェネリックになった型エイリアスの紹介
syumai
2
300
Swift Testingのモチベを上げたい
stoticdev
2
200
新宿駅構内を三人称視点で探索してみる
satoshi7190
2
120
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
230
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
Writing Fast Ruby
sferik
628
61k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
GraphQLとの向き合い方2022年版
quramy
44
14k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
How to Ace a Technical Interview
jacobian
276
23k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Visualization
eitanlees
146
15k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Transcript
@ManfredSteyer Strategic Domain-Driven Design: The missing link paving the way
to your monorepo-based Angular architecture Manfred Steyer SOFTWAREarchitekt.at ManfredSteyer
@ManfredSteyer What do we need for a good architecture ?
Experience
@ManfredSteyer Sharing Experience for Architectures BEST PRACTICES PATTERNS METHODOLOGY
@ManfredSteyer Domain Driven Design
@ManfredSteyer How can we improve our frontend architectures with ideas
from DDD?
@ManfredSteyer How can we improve our frontend architectures with ideas
from DDD?
@ManfredSteyer Contents 1) Strategic Design 101 2) Angular Monorepos 3)
Nx Monorepos and DDD 4) DEMO
@ManfredSteyer About me… • Manfred Steyer SOFTWAREarchitekt.at • Angular Trainings
and Consultancy • Google Developer Expert (GDE) • Trusted Collaborator in the Angular Team Page ▪ 8 Manfred Steyer Public: Frankfurt, Vienna, Munich, Düsseldorf, Stuttgart In-House: everywhere http://softwarearchitekt.at/workshops
@ManfredSteyer 1) Strategic Design in a nutshell
@ManfredSteyer Domain Driven Design Strategic Design Tactical Design Decomposing a
System Design Patterns & Practices
@ManfredSteyer Domain Driven Design Strategic Design Tactical Design Decomposing a
System Design Patterns & Practices
@ManfredSteyer This is what Strategic DDD prevents
@ManfredSteyer Example e-Procurement System
@ManfredSteyer Catalog Approval Specification Ordering Example Sub-Domains
@ManfredSteyer Catalog Approval Bounded Cotext Ubiquitous Language
@ManfredSteyer Catalog Approval Specification Ordering Context Map
@ManfredSteyer Approval Specification Context Map Catalog Catalog Shared Kernel
@ManfredSteyer Catalog Approval API
@ManfredSteyer Lots of additional approaches for cross-domain communication …
@ManfredSteyer 2) Monorepos
@ManfredSteyer Workspace
@ManfredSteyer Creating a Workspace npm install -g @angular/cli ng new
workspace cd workspace ng generate app my-app ng generate lib my-lib ng serve --project my-app ng build --project my-app
@ManfredSteyer Tooling & Generator https://nrwl.io/nx
@ManfredSteyer Visualize Module Structure
@ManfredSteyer 3) Nx Monorepos and Strategic Design
@ManfredSteyer Catalog Ordering Shared Feature Feature Feature Feature Feature UI
UI UI UI UI UI UI UI UI Domain Domain Domain Domain Domain Domain Util Util Util Util Util Util Enterprise Monorepo Patterns, Nrwl 2018: https://tinyurl.com/y2jjxld7 @ManfredSteyer Shared Kernel (if really needed) & other libs
@ManfredSteyer Catalog Ordering Shared Feature API Feature Feature Feature Feature
UI UI UI UI UI UI UI UI UI Domain Domain Domain Domain Domain Domain Util Util Util Util Util Util @ManfredSteyer
@ManfredSteyer Application Domain Infrastructure Isolate your domain! Domain Domain Infrastructure
e. g. data access Application Use case specific facades
@ManfredSteyer Finegrained Libraries • Unit of recompilation • Unit of
retesting • Access restrictions • Prevent Cycles • Information Hiding • Future replacement for NgModules?
@ManfredSteyer 4) DEMO
@ManfredSteyer Summary Slicing into sub-domains Slicing into layers Non-strict layering
Finegrained libraries Enforce restrictions
@ManfredSteyer
@ManfredSteyer Contact and Downloads [mail] manfred.steyer@SOFTWAREarchitekt.at [web] SOFTWAREarchitekt.at [twitter] ManfredSteyer
d Slides & Examples Public: Frankfurt, Vienna, Munich, Düsseldorf, Stuttgart In-House: everywhere http://softwarearchitekt.at/workshops