Domain-Driven Design по фэншую
Памятка для раскраивания предметной области на примере учетной системы.
Распил предмета
Возьмем небольшой кусочек интернет-магазина и попилим его по канону DDD.
Что есть домен? Домен – это сегмент предметной области, состоящий из связанных смыслом бизнес-сущностей и понятий. У домена всегда есть центральная сущность, вокруг которой строится предметно-инструментальная обвязка. Примеры:
- Заказы – вспомогательная сущность счета (и не только);
- Контрагенты – вспомогательная сущность договора (и не только);
- Склад – вспомогательная сущность накладные (и не только).
Определите все бизнес-сущности, входящие в границу домена. Не включайте в список компоненты системной оснастки (уведомления, конфигурирование, контроль, безопасность, платформа для оркестровки и т.д.) – это особые универсальные сервисы за пределами парадигмы DDD.
Распил модели данных
После того, как предметная область распилена, следует заняться архитектурой данных.
Для каждого домена проектируем модель данных. Все модели должны быть строго изолированы и локализованы. Ориентируйтесь на аспектный подход при проектировании модели данных бизнес-сущности.
Распил API
Разделите интерфейсы на типы, по характеру использования. Типов интерфейсов к данным может быть несколько, для: фронтенда, бизнес-процессов, интеграции.
Для каждой бизнес-сущности создайте свой набор API. Все интерфейсы должны быть заточены под сценарии управления данными.
Подсказка
Если вы затрудняетесь с разделением в каком-либо слое, то ориентируйтесь на здравый смысл. Вот несколько причин для разделения:
Нужно разделить ответственность и владение данными
Нужно разделить разработку
Необходимость особой технологии
Необходимость особого сценария использования
Необходимость реализации особой логики
Необходимость особого обслуживания
Необходимость особых ресурсов
Необходимость особых настроек эксплуатации
Объясняем, чем отличаются объектное, блочное и файловое хранилище, и для каких бизнес-задач подходит каждое из них.
В статье подробно расскажу, как строится такая архитектура и зачем она нужна маркетологу.
Индекс страха и жадности — это индикатор, который измеряет настроение участников криптовалютного рынка. Он выражается в числовом эквиваленте от 0 до 100, где:
Чем больше интернет-магазин, тем больше данных нужно обрабатывать. И когда Яндекс Метрика уже не помогает — это сигнал, что пора строить BI-систему. Она поможет понять поведение пользователей и быстрее приведет к целям бизнеса.
Декомпозиция задач — это процесс разбивки сложной задачи или проекта на более мелкие, управляемые и понятные подзадачи. Этот подход позволяет упростить выполнение задачи, сделать её более структурированной и снизить уровень стресса, связанного с её выполнением.
Собрали дайджест статей про кастомные механизмы и разработки ALP Group на базе 1С.