--- aliases: - Ограниченный контекст - ограниченных контекстов - ограниченного контекста tags: - maturity/🌱 date: 2024-11-24 --- Ограниченный контекст (Bounded Context) — это ==логическая граница, внутри которой используется своя уникальная модель предметной области.== Он применяется в разработке для структурирования сложных систем, особенно когда бизнес-логика состоит из множества разрозненных частей. Основные характеристики: - **Локализация моделей:** Модель, используемая внутри одного контекста, не должна быть напрямую применима в других контекстах. Например, "Заказ клиента" в контексте управления складом может включать данные о весе и объеме, а в контексте бухгалтерии — только финансовую информацию. - **Изоляция логики и терминологии:**. Один и тот же термин может означать разные вещи в разных контекстах. Например, "Клиент" в маркетинговом контексте — это целевая аудитория, а в контексте продаж — это покупатель с историей заказов. - **Границы и ответственность:** Каждый контекст имеет свои четко определенные границы, и все, что относится к этому контексту (термины, сущности, события), остается внутри этих границ. - **Интеграция контекстов:** Разные контексты взаимодействуют через явно определенные способы, такие как события, API, шины сообщений. Это позволяет минимизировать зависимость между контекстами. Представим систему интернет-магазина. Возможные ограниченные контексты: - **Каталог продуктов** — управление списком товаров и их характеристиками. - **Управление заказами** — отслеживание состояния заказов. - **Склад** — управление инвентарем и логистикой. - **Бухгалтерия** — расчеты, счета и налоги. Каждый из этих контекстов оперирует своей моделью данных и логикой, при этом данные могут пересекаться. Например, "Товар" есть в каталоге и на складе, но в каждом из контекстов он будет описан по-разному. Польза - [[../efficiency/Снижение когнитивной нагрузки при разработке|Снижение когнитивной нагрузки]] за счет локализации сложных моделей. - Улучшение читаемости и тестируемости кода. - Уменьшение зависимости между различными частями системы. *** ## Мета информация **Область**:: **Родитель**:: **Источник**:: **Создана**:: [[2024-11-24]] **Автор**:: ### Дополнительные материалы - [[Single Responsibility Principle]] ### Дочерние заметки