As Python continues to grow in popularity, projects are becoming larger
and more complex. Many Python developers are taking an interest in
high-level software design patterns such as hexagonal/clean
architecture, event-driven architecture, and the strategic patterns
prescribed by domain-driven design (DDD). But translating those patterns
into Python isn't always straightforward.
With this hands-on guide, Harry Percival and Bob Gregory from MADE.com
introduce proven architectural design patterns to help Python developers
manage application complexity-and get the most value out of their test
suites.
Each pattern is illustrated with concrete examples in beautiful,
idiomatic Python, avoiding some of the verbosity of Java and C# syntax.
Patterns include:
- Dependency inversion and its links to ports and adapters
(hexagonal/clean architecture)
- Domain-driven design's distinction between Entities, Value Objects,
and Aggregates
- Repository and Unit of Work patterns for persistent storage
- Events, commands, and the message bus
- Command-query responsibility segregation (CQRS)
- Event-driven architecture and reactive microservices