Sections

Python · Section 32

Architecture and Design Patterns

How to structure an application above the level of a single class — layered, modular monolith, clean, and hexagonal architecture, domain-driven design fundamentals, microservices and event-driven architecture — and the named object-oriented patterns (Factory, Abstract Factory, Strategy, Adapter, Repository, Service Layer, Dependency Injection, Observer, Command, Builder, Decorator) a working engineer is expected to recognize, apply, and know when NOT to apply.

This section
  1. Common architecture stylesFour ways to draw the boundary between business logic and infrastructure (layered, modular monolith, clean, hexagonal), domain-driven design's vocabulary for modeling the business itself, and the two ways to split a system beyond one process (microservices, event-driven).3 standard3 concepts
  2. PatternsThe named object-oriented patterns a working engineer is expected to recognize and apply — creational (Factory, Abstract Factory, Builder), structural (Adapter, Decorator), behavioral (Strategy, Observer, Command), and the architectural seams (Repository, Service Layer, Dependency Injection) that connect layers.8 core1 standard1 reference10 concepts