In this interactive workshop, you will develop a critical understanding for planning and implementing large enterprise applications with Angular. You will deal with well-established techniques provided by Domain-driven Design for planning your architecture.
You will explore and work with approaches to implement your architecture like npm packages, Nx monorepos and micro frontends. We discuss reactive facades to abstract our state management logic and to isolate our domain logic. To enforce our architecture and guarantee loosely coupling, we use access restrictions provided by Nx.
By the end, you will have a blueprint you can use for your own sustainable architectures.
Content & Process
Part 1: Npm and Monorepos
- Providing and publishing npm libraries for Angular
- Configuring custom libraries with the forRoot/forChild pattern
- Configuring custom libraries with DI and the open/closed principle
- Using the monorepo approch to compensate for shortcomings of libraries
- Using Nx for managing an Angular monorepo
- Visualizing the application structure with Nx
Part 2: Domain Driven Design for planning your Angular Architectures
- Strategic Design, the Bounded Context, and Context Mapping
- Cutting an application into self-contained sub-domains with Strategic Design
- Tactical Design with Domain Events, Aggregates, Facades and State Management
- Implementing Strategic and Tactical Design with Nx
- Enforcing access restrictions between libraries, domains, and layers with Nx
Part 3: Micro Frontends
- Moving from DDD to Micro Frontends
- Idea and mindset behind Micro Frontends
- Monorepo vs. multiple repositories
- Isolation vs. bundle size
- Implementing a Micro Frontend shell
- Lazy loading Micro Frontends
- Sharing code between Micro Frontends with webpack externals
- Communication between Micro Frontends
- Sharing widgets via Web Components
Audience & Requirements
This workshop is for Angular developers who want to know how to substructure their big enterprise applications to build a sustainable and maintainable architectures.
As this will be an interactive workshop, please bring your laptop and install the following software upfront:
- NodeJS in current LTS version (nodejs.org)
- Visual Studio Code
- Angular CLI: npm i -g @angular/cli