@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
Slide 10
Slide 10 text
@ManfredSteyer
Creating a Workspace
npm install -g @angular/cli
npm init nx-workspace workspace
cd workspace
ng generate app my-app
ng generate lib my-lib
ng serve --project my-app
ng build --project my-app
Slide 11
Slide 11 text
@ManfredSteyer
DEMO
Slide 12
Slide 12 text
@ManfredSteyer
DDD
in a nutshell
Slide 13
Slide 13 text
@ManfredSteyer
Methodology for
bridging the gap b/w
requirements and
architecture/ design
Slide 14
Slide 14 text
@ManfredSteyer
Slide 15
Slide 15 text
@ManfredSteyer
Domain Driven Design
Strategic Design Tactical Design
Decomposing a System
Design Patterns
& Practices
Slide 16
Slide 16 text
@ManfredSteyer
Domain Driven Design
Strategic Design Tactical Design
Decomposing a System
Design Patterns
& Practices
Slide 17
Slide 17 text
@ManfredSteyer
Slide 18
Slide 18 text
@ManfredSteyer
Example
Flight System
Slide 19
Slide 19 text
@ManfredSteyer
Booking Check-in
Boarding
Luggage
Example
Sub-Domains
@ManfredSteyer
Finegrained Libraries
• Unit of recompilation*
• Unit of retesting
• Access restrictions
• Information Hiding
• Easy: Just ng g lib …
• Replacement for NgModules?
@ManfredSteyer
Idea
const Component = import('http://other-app/xyz')
Does not work with
webpack/ Angular CLI
Even lazy parts must be
known at compile time!
@ManfredSteyer
1) ng add @angular-architects/module-federation
2) Adjust generated configuration
3) ng serve
Slide 59
Slide 59 text
@ManfredSteyer
1) npm i @angular-architects/module-federation -D
2) ng g @angular-architects/module-federation:init
3) Adjust generated configuration
4) ng serve
Slide 60
Slide 60 text
@ManfredSteyer
Slide 61
Slide 61 text
@ManfredSteyer
Slide 62
Slide 62 text
@ManfredSteyer
Wrap them into Web Components
Angular App
(MFE)
React App
(MFE)
@ManfredSteyer
Challanges
• Bundle Size
• Multiple Routers
• Bootstrapping Several Angular Instances
• Share Platform-Object when same version is reused
• Share ngZone
@ManfredSteyer
Some General Advice
Shared state,
navigation b/w
apps
Hyperlinks
Legacy Apps or
*very very* strong
isolation?
iframes
Separate
Deployment/ mix
Technologies?
Load Bundles on
Demand
Monolith
little
much
yes
no
yes
no
Module Federation
Slide 74
Slide 74 text
@ManfredSteyer
d
Slides & Examples Remote Company Workshops
and Consulting
http://angulararchitects.io