DDD
Определение
Предметно-ориентированное проектирование (англ. Domain-Driven Design, сокращенно DDD) — подход, при котором устройство кода повторяет устройство бизнеса и говорит на его языке. Команда вместе с экспертами заказчика составляет общий словарь: если в логистике говорят «рейс» и «отгрузка», те же слова есть в коде. Систему делят на части по областям бизнеса: склад, продажи, доставка, и у каждой свои правила и данные. Пример: «клиент» для отдела продаж и для бухгалтерии значит разное, и DDD не смешивает эти понятия в одну модель. Подход окупается в сложных предметных областях с большим числом правил. Вместе с DDD часто применяют CQRS, раздельные модели для записи и чтения. Границы частей помогают позже выделить микросервисы, а правила живут в ядре приложения.