Пост

Модульный монолит

Рассмотрим подход проектирования ПО как модульный монолит

Модульный монолит

Модульный монолит

Модульный монолит - это архитектурный подход с внутренним разделением на независимые модули.

Код структурирован как единый проект, но разбит на логические папки (модули), например:

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

Данные пользователя мы храним только там где они нужны.

Главное понять какие поля нужны каким модулям и не стоит пихать все данные в одну сущность

Авторский пост защищен лицензией CC BY 4.0 .

Хотите оптимизировать свой бизнес, нужен сервис, сайт или интеграция.

Бесплатно расчитаю время разработки, предложу решение вашей задачи.