Встречается на 12% собеседований по C#
Что такое DDD
DDD (Domain-Driven Design) — это подход к разработке ПО, ориентированный на предметную область (домен). Основная идея — тесное взаимодействие с экспертами домена, чтобы создать модель, отражающую реальные бизнес-процессы.
Ключевые концепции:
- Ubiquitous Language — общий язык между разработчиками и экспертами.
- Bounded Context — четкие границы доменных моделей.
- Aggregates — группы связанных сущностей с корневым объектом (Aggregate Root).
- Repositories — абстракции для доступа к данным.
- 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
интервью вопросы и ответы