@ManfredSteyer
Further Selected Features of Nx
• Restricting access b/w apps and libs
• Just recompile changed apps
• Parallel compilation in the cloud
• Integration of tooling: Cypress, Playwright, Storybook, …
Slide 13
Slide 13 text
@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 14
Slide 14 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 15
Slide 15 text
@ManfredSteyer
DEMO
Slide 16
Slide 16 text
@ManfredSteyer
DDD
in a nutshell
Slide 17
Slide 17 text
@ManfredSteyer
Methodology for
bridging the gap b/w
requirements and
architecture/ design
Slide 18
Slide 18 text
@ManfredSteyer
Slide 19
Slide 19 text
@ManfredSteyer
Domain Driven Design
Strategic Design Tactical Design
Decomposing a System
Design Patterns
& Practices
Slide 20
Slide 20 text
@ManfredSteyer
Domain Driven Design
Strategic Design Tactical Design
Decomposing a System
Design Patterns
& Practices
Slide 21
Slide 21 text
@ManfredSteyer
Slide 22
Slide 22 text
@ManfredSteyer
Example
Flight System
Slide 23
Slide 23 text
@ManfredSteyer
Booking Check-in
Boarding
Luggage
Example
Sub-Domains
@ManfredSteyer
Finegrained Libraries
• Units for dep graph
• Unit of recompilation*
• Unit of retesting
• Access restrictions
• Information Hiding
• Easy: Just ng g lib …
Slide 31
Slide 31 text
@ManfredSteyer
Restricting Access
on a folder basis
Rainer Hahnekamp,
AngularArchitects
@softarc/eslint-plugin-sheriff
@ManfredSteyer
1) ng add @angular-architects/module-federation
2) Adjust generated configuration
3) ng serve
Slide 68
Slide 68 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 69
Slide 69 text
@ManfredSteyer
Slide 70
Slide 70 text
@ManfredSteyer
Slide 71
Slide 71 text
@ManfredSteyer
Wrap them into Web Components
Angular App
(MFE)
React App
(MFE)
@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 81
Slide 81 text
@ManfredSteyer
d
Slides & Examples Remote Company Workshops
and Consulting
http://angulararchitects.io