Начав писать про Event Storming не планировал углубляться в DDD, но в процессе подготовки статей понял, что все же стоит уточнить определения для сформирования целостной картины.
В Domain-Driven Design (DDD) домен и ограниченный контекст играют важную роль в структурировании и разработке сложных программных систем.
Домен
Домен представляет собой область, которая описывает совокупность бизнес-проблем и целей. Это сфера деятельности компании, которую необходимо автоматизировать с помощью IT-решений. Домен включает в себя все аспекты, связанные с этой деятельностью.
Пример: Если компания занимается логистикой, то домен будет охватывать все процессы, такие как выбор транспорта, планирование маршрутов, оформление заказов и т.д.
Ограниченный контекст
Ограниченный контекст — это часть домена, которая отвечает за конкретный функционал и имеет свой собственный язык описания. Основной принцип DDD заключается в разделении домена на ограниченные контексты с собственными моделями.
Пример: В логистической системе ограниченный контекст может включать процесс оформления заказа и определения оптимального маршрута. Этот контекст обладает своими моделями и терминологией, которые не пересекаются с другими контекстами.
Основные различия:
Масштаб.
- Домен: Охватывает широкую область бизнеса и включает множество задач.
- Ограниченный контекст: Фокусируется на конкретном аспекте или функционале.
Структура.
- Домен: Может состоять из нескольких ограниченных контекстов.
- Ограниченный контекст: Является частью домена и имеет свои модели.
Цель.
- Домен: Описывает всю предметную область бизнеса.
- Ограниченный контекст: Отвечает за специфические задачи в рамках этой области.
Таким образом, домен представляет собой широкую структуру, включающую все аспекты бизнеса, тогда как ограниченный контекст является более специализированной частью, сосредоточенной на выполнении конкретных задач.