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

Что такое DDD (Domain-Driven Design)

DDD — это подход к разработке программного обеспечения, который фокусируется на моделировании бизнес-логики в соответствии с реальной предметной областью (доменом). Основная цель — создать гибкую и понятную систему, отражающую бизнес-процессы.

Ключевые концепции:

  1. Ubiquitous Language — общий язык между разработчиками и экспертами домена.
  2. Bounded Context — четкие границы поддоменов с собственной моделью.
  3. Aggregates — группы связанных объектов, управляемых через корневой объект.
  4. Entities & Value Objects — сущности (идентификатор) vs объекты-значения (атрибуты).

Пример на Python:

python
class Order:
    def __init__(self, order_id: str, items: list[OrderItem]):
        self.id = order_id  # Entity
        self._items = items

    def add_item(self, product: Product, quantity: int):
        # Domain logic
        if quantity <= 0:
            raise ValueError("Quantity must be positive")
        self._items.append(OrderItem(product, quantity))

class OrderItem:
    def __init__(self, product: Product, quantity: int):
        self.product = product  # Value Object
        self.quantity = quantity

DDD особенно полезен в сложных бизнес-системах, где критично точное отражение доменных правил.

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

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

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

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