Комментарии 6
И никогда не начинайте проект с микросервисной архитектуры просто так.
Вполне возможно MVP можно начать с монолита, разделенного по модулям. Это сэкономит много денег и нервов. Попробуйте -не пожалеете :)
А смысл делать какую-либо архитектуру просто так? :) Монолит монолиту тоже рознь и внутренняя архитектура может разительно отличаться от другой.
Модульная архитектура ведь не панацея, монолит буквально провоцирует разработчика нарушать границы модулей, переиспользовать компоненты и реализацию, кто-то из-за недостатка опыта, кто-то "временно", чтобы быстрее выкатить функционал (потом исправим...).
Исходя из имеющегося опыта писать монолит под будущий распил хуже, чем сразу разделить.
Согласен, но
То что для модуля реализуется должно быть видно только модулю
Модуль публикует для остальных только интерфейсы
Разработчики обращаются только к интерфейсам
На ревью за говнокод по рукам
А так же если все так плохо и надо по-быстрому сделать говнокод, то сделать страшную какашку с микросервисами еще проще :) разве не так ?
Всё так, но границы микросервиса невозможно нарушить, придётся явно сделать контракт. В монолите нужно как-то явным образом обеспечить нерушимость границы. По моему личному мнению, всякие линтеры, компайл-чекинг и т.д. -- всё это нужно, чтобы на ревью не заниматься обезьяньим трудом. Если архитектура такая, что там за каждым чихом нужно на ревью досконально разбираться, значит слишком много вольностей в проекте, и нужно постоянно сидеть с талмудом соглашений, не дай бог сделай что-нибудь не так.
Все зависит от языка и контейнер DI \ IoC. Т.е. на сколько он дает простор для решения такой задачи
Например у нас есть функционал accaunts и likes. Можно разделить по пакетам в коде все что относится к ним. Реализация должна быть видна только внутри пакетов их или даже подпакетов. Наружу public interface AccauntsService и LikesService и взаимодействие только через них :) Это я имел ввиду. А на ревью по шапке давать всем, кто обходные пути создает. Благо это не так сложно и соглашений куча не надо будет.
Согласен. Оверхед огромный по соглашениям писанным и неписанным - зло
(поставил вам плюсик в карму за интересный диалог)
На 100% подписываюсь
Книга «Создание микросервисов. 2-е издание»