Как применить Domain-Driven Design в Python?

Senior
224 просмотров
AFK Offer AI

DDD — проектирование вокруг бизнес-домена. Entity — объект с идентичностью (User с id). Value Object — без идентичности (Money, Address) — используй frozen dataclass. Aggregate — кластер объектов с корневой entity. Repository — абстракция доступа к данным. Service — бизнес-операция, не принадлежащая одной entity. В Python: entities — dataclass, repos — Protocol, services — обычные классы. Ubiquitous Language — код использует термины бизнеса. DDD оправдан для сложных доменов, для CRUD — overkill.

Следующий вопрос

Что такое метапрограммирование в Python?