Чистая архитектура и микросервисы

cleanБоюсь, что этот текст выльется в достаточно большое количество букв. Но пишу сюда я тексты нечасто, так что может кто-нибудь его и осилит. Тем более, что использование микросервисов уже достаточно долго сопровождается вопросом: зачем мы это делаем. Несмотря на обилие вариантов ответов (см., например, отличный обзор Nate Schutta (+Matt Stine) Should that be a Microservice? Keep These Six Factors in Mind), вопрос этот задается снова и снова. У меня есть свой вариант ответа. Если говорить просто заключается он в переносе идей Чистой архитектуры Роберта С. Мартина (дядюшки Боба) из мира [монолитных] приложений в пространство распределенных архитектур. Цитата из его книжки Чистая архитектура. Искусство разработки программного обеспечения:

Архитектура программной системы – это форма, которая придается системе её создателями. Эта форма образуется делением системы на компоненты, их организацией и определением способов взаимодействия между ними. Цель формы – упростить разработку, развертывание и сопровождение программной системы, содержащейся в ней. Главная стратегия такого упрощения в том, чтоб как можно дольше иметь как можно больше вариантов.

Можно по-разному относиться к идеям этой книжки. Я даже не стану утверждать, что они всегда и всему подходят. Но небольшую часть из них, прежде чем вернуться к микросервисам, мне придется повторить.
Итак, поехали! Читать далее Чистая архитектура и микросервисы