Sustainable Angular Architectures with Nx and Strategic Design
Is your large Angular app becoming an unmaintainable monolith? Learn how Strategic Design and Nx can enforce clear architectural boundaries and prevent coupling.
#1about 4 minutes
Using Strategic Design to decompose large systems
Strategic Domain-Driven Design (DDD) provides a methodology for decomposing a large, complex system into smaller, more maintainable sub-domains to prevent tight coupling.
#2about 6 minutes
Understanding the benefits of using monorepos
Monorepos simplify development by co-locating all projects, eliminating dependency version conflicts, and removing the burden of distributing internal libraries via NPM.
#3about 2 minutes
Enhancing Angular monorepos with Nx tooling
Nx extends the Angular CLI with powerful tools for monorepos, including the ability to visualize the dependency graph between libraries to prevent unwanted coupling.
#4about 4 minutes
Structuring libraries with Domain-Driven Design principles
Organize your monorepo by creating folders for each domain and a shared kernel, then categorize libraries into feature, UI, domain, and utility types to bring order.
#5about 3 minutes
Defining and enforcing architectural access restrictions
Implement strict access rules, such as layering where higher layers access lower ones, and domain boundaries to prevent direct communication and ensure loose coupling.
#6about 4 minutes
Using APIs to safely share code between domains
Avoid an overgrown shared kernel by creating dedicated API libraries that expose a small, stable public interface from one domain for use by others.
#7about 3 minutes
Isolating the domain model and business logic
Structure your domain library into three parts: the core domain logic, an infrastructure layer for data access, and an application layer with facades for state management.
#8about 8 minutes
Code walkthrough of an Nx and DDD project structure
A practical demonstration shows how an Nx monorepo is organized into apps and libs, with domains containing layered libraries and using index.ts to define public APIs.
#9about 4 minutes
Enforcing architectural rules with Nx linting
Nx can automatically enforce your architectural boundaries and layering rules using custom linting configurations, preventing violations directly in the IDE and CI pipeline.
#10about 5 minutes
Speeding up CI builds with Nx affected commands
Use Nx's `affected` commands to intelligently run tests and builds only on the projects impacted by your code changes, dramatically speeding up your CI/CD pipeline.
#11about 4 minutes
Summary of sustainable architecture principles
A recap of key takeaways including subdividing applications into domains and layers, using fine-grained libraries as units of recompilation, and enforcing rules with Nx.
Related jobs
Jobs that call for the skills explored in this talk.
The HTML Elements That You’re Probably Over-EngineeringAs frameworks have become more and more commonplace in the world of web development, so too has the over-engineering of features made possible by our humble old friend, HTML.
The mental models that come with using state management in React, Vue and o...
Why Attend a Developer Event?Modern software engineering moves too fast for documentation alone. Attending a world-class event is about shifting from tactical execution to strategic leadership.
Skill Diversification: Break out of your specific tech stack to see how the industry...