tgoop.com/testing_and_life/1668
Last Update:
Часть 4/4. Предыдущие части
Архитектурный стиль
Обычно когда мы говорим об архитектуре, то обычно говорим именно об архитектурном стиле. Например обсуждаем микросервисы. Но это не вся архитектура, а только ее часть.
Как дома могут быть в разных стилях и мы отличим «сталинки» от «хрущевок», так и в архитектуре ПО тоже есть свои стили, которые задают основные идеи и принципы. Их много самых разных и их можно классифицировать тоже по-разному, часто у вас в реальной системе не чистый стиль, а какая-то смесь.
Авторы Head First Software Architecture рассказывают про несколько основных архитектурных стилей, которые являются краевыми случаями по двум характеристикам: модель развертывания и способ декомпозиции.
В реальности, повторюсь, может быть и чаще всего бывает что-то промежуточное.
В монолитной архитектуре мы разворачиваем все наши логические компоненты как одну сущность. И весь деплой происходит в один момент.
В распределенной архитектуре мы наоборот можем разворачивать логические части нашего приложения по-отдельности. Например обновить только компонент платежей.
По способу декомпозиции авторы выделяют разбиение по техническим задачам и по бизнес-задачам, которые они решают.
Чтобы лучше понять идею, они приводят метафору ресторана и фудкорта. В ресторане каждая роль выполняет свою функцию. Было бы странно, если шеф-повар и готовил блюда, и убирал со столов. И это разделение по техническим задачам. А вот на фудкорте наоборот куча разных точек со своим профилем, где внутри выполняется все и сразу — и их удобнее разделить по бизнес-функциям.
#ZenTest
#книги