Встречается на 12% собеседований по C#

Что такое DDD

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

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

  1. Ubiquitous Language — общий язык между разработчиками и экспертами.
  2. Bounded Context — четкие границы доменных моделей.
  3. Aggregates — группы связанных сущностей с корневым объектом (Aggregate Root).
  4. Repositories — абстракции для доступа к данным.
  5. Domain Events — события, отражающие изменения в домене.

Пример агрегата:

csharp
public class Order : AggregateRoot
{
    private List<OrderItem> _items = new();
    
    public void AddItem(Product product, int quantity)
    {
        _items.Add(new OrderItem(product, quantity));
        AddDomainEvent(new OrderItemAddedEvent(this, product, quantity));
    }
}

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

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

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

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