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
Maintainable Architectures with Angular, Monore...
Search
Manfred Steyer
PRO
May 09, 2019
Programming
0
530
Maintainable Architectures with Angular, Monorepos and Strategic DDD
Manfred Steyer
PRO
May 09, 2019
Tweet
Share
More Decks by Manfred Steyer
See All by Manfred Steyer
Advanced Micro Frontends: Multi Version/ Framework Scenarios
manfredsteyer
PRO
0
310
Advanced Micro Frontends: Multi Version/ Framework Scenarios @WAD 2025, Berlin
manfredsteyer
PRO
0
610
Modern Angular with Signals and Signal Store:New Rules for Your Architecture @enterJS Advanced Angular Day 2025
manfredsteyer
PRO
0
480
The Missing Link in Angular‘s Signal Story Resource API and httpResource @ngRome 2025
manfredsteyer
PRO
0
160
Your Architecture as a Crime Scene:Forensic Analysis
manfredsteyer
PRO
0
220
Rethinking Data Access: The New httpResource in Angular
manfredsteyer
PRO
0
360
Reactive Thinking with Signals, Resource API, and httpResource @Devm.io Angular 20 Launch Party
manfredsteyer
PRO
0
240
JavaScript as a Crime SceneForensic Analysis
manfredsteyer
PRO
0
130
Modern Angular with Signals and Signal Store:New Rules for Your Architecture @jax2025 in Mainz, Germany
manfredsteyer
PRO
0
220
Other Decks in Programming
See All in Programming
アプリの "かわいい" を支えるアニメーションツールRiveについて
uetyo
0
110
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
410
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
3
2.1k
KessokuでDIでもgoroutineを活用する / Go Connect #6
mazrean
0
140
詳解!defer panic recover のしくみ / Understanding defer, panic, and recover
convto
0
210
Oracle Database Technology Night 92 Database Connection control FAN-AC
oracle4engineer
PRO
1
390
さようなら Date。 ようこそTemporal! 3年間先行利用して得られた知見の共有
8beeeaaat
2
1.3k
ECS初心者の仲間 – TUIツール「e1s」の紹介
keidarcy
0
150
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
210
Laravel Boost 超入門
fire_arlo
2
190
機能追加とリーダー業務の類似性
rinchoku
2
910
ProxyによるWindow間RPC機構の構築
syumai
3
960
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
525
40k
What's in a price? How to price your products and services
michaelherold
246
12k
Music & Morning Musume
bryan
46
6.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
A Modern Web Designer's Workflow
chriscoyier
696
190k
Documentation Writing (for coders)
carmenintech
74
5k
Visualization
eitanlees
148
16k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.5k
For a Future-Friendly Web
brad_frost
180
9.9k
Transcript
@ManfredSteyer Maintainable Architectures with Angular, Monorepos and Strategic DDD Manfred
Steyer SOFTWAREarchitekt.at ManfredSteyer
@ManfredSteyer "Where does an Architecture come from?" Architecture Requirements
@ManfredSteyer "Where does an Architecture come from?" Architecture Requirements Here
happens a Wonder
@ManfredSteyer Ingredients for an Architecture Experience
@ManfredSteyer Transporting 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 ▪ 11 Manfred Steyer Public: Vienna, München, Zürich In-House: everywhere http://softwarearchitekt.at/workshops
@ManfredSteyer Strategic Design in a nutshell
@ManfredSteyer Domain Driven Design Strategic Design Tactical Design Decomposing a
System Practices & Patterns
@ManfredSteyer Domain Driven Design Strategic Design Tactical Design Decomposing a
System Practices & Patterns
@ManfredSteyer This is what Strategic DDD prevents
@ManfredSteyer Example e-Procurement System
@ManfredSteyer Catalog Approval Specification Ordering Example Sub-Domains
@ManfredSteyer Catalog Approval Employee Manager
@ManfredSteyer Request Product Specify Order Approve Order Send Order Request
Budget Approve Budget Budget Hierarchy Manager Manager Employee Expert Manager Buying Agent Product
@ManfredSteyer Catalog Approval
@ManfredSteyer Catalog Approval Specification Ordering Context Map
@ManfredSteyer Catalog Approval API
@ManfredSteyer Catalog Ordering API ERP ACR
@ManfredSteyer Catalog Approval Calc VAT Calc VAT Seperate Ways
@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 Advantages Everyone uses the latest versions No version conflicts
No burden with distributing libs Creating new libs: Adding folder Experience: Successfully used at Google, Facebook, …
@ManfredSteyer Moving back and forth Npm Registry
@ManfredSteyer Tooling & Generator https://nrwl.io/nx
@ManfredSteyer Visualize Module Structure
@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 Creating a Workspace npm install -g @angular/cli npm init
nx-workspace myworkspace cd workspace ng generate app my-app ng generate lib my-lib ng serve --project my-app ng build --project my-app
@ManfredSteyer Nx Monorepos and Strategic Design
@ManfredSteyer Catalog Ordering Shared Feature Feature Feature Feature Feature UI
UI UI UI UI UI UI UI UI Data Data Data Data Data Data Util Util Util Util Util Util Enterprise Monorepo Patterns, Nrwl 2018: https://tinyurl.com/y2jjxld7 @ManfredSteyer
@ManfredSteyer Catalog Ordering Shared Feature API Feature Feature Feature Feature
UI UI UI UI UI UI UI UI UI Data Data Data Data Data Data Util Util Util Util Util Util @ManfredSteyer
@ManfredSteyer Finegrained Libraries • Unit of recompilation and retesting •
Unit of retesting • Access restrictions • Prevent Cycles • Information Hiding • Future replacement for NgModules?
@ManfredSteyer DEMO
@ManfredSteyer Summary Self-contained sub domains Monorepo for slicing w/ libs
Non-strict layering Finegrained libraries Enforce restrictions
@ManfredSteyer Beware the Frankenstein- Monster!!
@ManfredSteyer Contact and Downloads [mail]
[email protected]
[web] SOFTWAREarchitekt.at [twitter] ManfredSteyer
d Slides & Examples Public: Frankfurt, Vienna, München, Stuttgart In-House: everywhere http://softwarearchitekt.at/workshops