Встречается на собеседованиях • сегодня

Как построить архитектуру на основе DDD

DDD (Domain-Driven Design) — это подход к разработке, где основное внимание уделяется бизнес-логике. Вот ключевые шаги:

  1. Разделение на слои:

    • Domain (ядро) — бизнес-логика и модели.
    • Application — координация работы домена.
    • Infrastructure — технические детали (БД, API).
    • Presentation — UI или API-контроллеры.
  2. Агрегаты и сущности:

    • Агрегаты — группы связанных сущностей с корневой сущностью (Aggregate Root).
    • Сущности — объекты с идентификатором и бизнес-правилами.
  1. Репозитории:
    • Интерфейсы в домене, реализация в инфраструктуре.

Пример на Python:

python
# Domain Layer
class Order:
    def __init__(self, id: str, items: list):
        self.id = id
        self.items = items

class OrderRepository(ABC):
    @abstractmethod
    def save(self, order: Order): pass

# Infrastructure Layer
class SQLOrderRepository(OrderRepository):
    def save(self, order: Order):
        # Save to DB
        pass

# Application Layer
class OrderService:
    def __init__(self, repo: OrderRepository):
        self.repo = repo

    def create_order(self, items):
        order = Order(str(uuid4()), items)
        self.repo.save(order)
        return order

Используйте Ubiquitous Language (единый язык) между разработчиками и экспертами. DDD особенно полезен для сложных бизнес-доменов.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы