Как стать автором
Обновить

Организация кода в микросервисах и мой подход применения гексагональной архитектуры и DDD

Время на прочтение7 мин
Количество просмотров15K
Всего голосов 10: ↑6 и ↓4+5
Комментарии8

Комментарии 8

В Монолите весь код должен быть в едином стиле, a в разных микросервисах можно использовать разные подходы, языки программирования и фреймворки.

Зачем вам усложнять на порядок приложение?
Вы хотите за отдельный прайс сопровождать этот зоопарк?

Подсказки:
Для монолита можно использовать модули и библиотеки, внутри которых можно применять разные стили и фреймворки.
Я не автор, но добавлю от себя.
Минусы у такого подхода есть, поэтому если проект маленький, то особых преимуществ не получите. НО по мере того как система будет разрастаться, вы начнете сталкиваться с типичными проблемами монолита:
— тяжелое или практически невозможное горизонтальное масштабирование
— много конфликтов при работе нескольких команд
— ci/cd для отдельных компонентов
и список можно дальше перечислять.
Много компаний уже пришли к тому, что с имеющимися монолитами очень тяжело дальше жить и всячески пытаются переходить на микросервисную архитектуру.

Можете статью Фаулера почитать, почему такой подход появился
martinfowler.com/articles/microservices.html

Угу, проблема в том, что в 99% случаев, все называют главной проблемой монолита — сильная связанность кода (например половина пунктов из коммента ниже).
Что не имеет совершенно ничего общего с монолитом. Можно иметь такую же связанность кода и на микросервисах. А можно разбить всё на независимые модули в рамках одного монолита и тем самым решить бОльшую часть проблем.


И лично я согласен с автором предыдущего коммента: по мне хорошо организованный монолит это лучше чем зоопарк технологий.


Но я согласен и с вами, в довольно больших проектах, монолит тоже приведёт к страданиям. Если вам требуется больше нескольких запущенных инстансов монолита и у вас очень много функциональности


Как всегда, вопрос баланса: микросервисы это дороже и сложнее, поэтому их есть смысл выбирать, только когда это действительно обосновано. А не когда люди банально не умеют писать модули или хотят поиграться с новой технологией

Монолит и микросервисы это две крайности. Для крупных проектов, где архитектура в долгосрочной перспективе определяется тем, как вы разбиваете задачи по командам, решением может быть классическая SOA. dzone.com/articles/microservices-vs-soa-whats-the-difference
Например,
— для горизонтального масштабирования в продакшене,
— для использования более удобной распределённой разработки,
— для использования разных технологий в плане удобства решения конкретной подзадачи,
— для независимого частичного развёртывания,
— для упрощения тестирования,
— для чёткого разграничения сфер ответственности,
— для…

upd. перекликается с комментом выше. на модерации провисел…
Есть кратко суть статьи: Джун — пишет код в контроллере. Мидл — пишет кучу абстракций. Сеньор — знает когда нужно писать код в контроллере, а когда нужны абстракции.
Что за дискриминация по половому признаку джуномидлосеньорному должностному признаку?
Джун/мидл/Сеньор это не должность. Это уровень. Я сразу после универа 2 года проработал на должности айти директора фирмы по факту потому что был там единственным программистом. Уровень у меня был джуна конечно. Ну как, скорее джун+ или даже мидл потому что я до этого, пока учился в универе, фрилансил.
UPD: Добавил картинку с последовательностью вызова кода.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории