Модульный монолит
Рассмотрим подход проектирования ПО как модульный монолит
Модульный монолит
Модульный монолит - это архитектурный подход с внутренним разделением на независимые модули.
Код структурирован как единый проект, но разбит на логические папки (модули), например:
1
2
3
4
5
6
7
8
9
10
11
12
13
Authentification
Author
Blog
Comment
Corporate
Data
EventStore
Http
View
Logger
Mailer
Payment
Product
Модули взаимодействуют между собой через абстракции, интерфейсы (API), а внутри модуля объединена его функциональность.
Независимые друг от друга модули используют свои таблицы в базе данных.
Мы получаем что:
- Можно делать сколь угодно большие проекты, за счет того что можем интегрировать сервисы друг с другом.
- Каждый модуль независим от других, а это значит, что его можно разрабатывать и тестировать отдельно.
- Слабая связанность компонентов.
Единый контекст
В каждой предметной области свои термины. Термины, правила и бизнес-логика имеют строгое локальное значение.
Каждый контекст решает свою задачу. Один и тот же термин в разных частях системы может иметь разное значение.
В одном модуле - это клиент, в другом это пользователь, в третьем это автор.
Важно называть вещи так, как это заведено в бизнесе клиента.
То есть:
- Бухгалтер - свои термины
- Курьер - свои термины
- Доставка - свои термины
- Склад - свои термины
Как распределить данные по контекстам:
Нужно сделать так, чтобы данные хранились независимо. То есть каждый модуль содержит только ту информацию которая нужна для этого сервиса.
Например:
- каталог
- id
- title
- description
- photo
- бухгалтерия
- id
- price
- заказ
- id
- amount
- price
- доставка
- id
- size
- weight
- delivery
- id user
- address user
- склад
- id
- amount
- shelf
- комментарий
- id
- id_author
Данные пользователя мы храним только там где они нужны.
Главное понять какие поля нужны каким модулям и не стоит пихать все данные в одну сущность
Хотите оптимизировать свой бизнес, нужен сервис, сайт или интеграция.
Бесплатно расчитаю время разработки, предложу решение вашей задачи.
