10.5K subscribers
337 photos
20 videos
15 files
731 links
Архитектура | Программирование | Профессиональное развитие

Соер.Клуб - https://xn--r1a.website/soer_live

По всем вопросам писать на @soerdev
Download Telegram
Для иллюстрации монолитных и модульных архитектур интересно разобрать аналогию с человеком, очевидно, что человек - это монолит, но при этом это модульный монолит, так как у нас есть органы, которые отвечают за конкретные функции организма, но при этом замена и разделение на части - это очень проблематичная задача, которая в большинстве случаев приводит к плачевным результатам.
Но когда несколько "монолитных людей" объединяются и решают задачу (например, строители на стройке), то они образуют более сложную структуру, которая является модульной, но для такой структуры нужна возможность управления (на стройке это прораб).
Один человек может решать простые задачи, но при возрастании сложности поставленной задачи, требуется больше людей. Это по сути и есть уход от монолитности к модульности.
В модульных системах - отдельные части это монолиты, но их тогда называют "атомарными" элементами, чтобы подчеркнуть, что это наименьшая функциональная единица архитектуры.
#monlith #архитектурные_стримы
Процесс цикличен и важно его осуществлять постепенно.

Во-вторых, цена перехода на микросервисы как правило очень высока, и если бизнес испытывает финансовые трудности, то переход только ухудшит ситуацию.

В-третьих, необходимо четко разделять обратимые и необратимые изменения, желательно планировать переход так, чтобы уменьшить количество необратимых изменений, хорошо продумать стратегию «отката» (касается технических решений).

Конкретные шаги для перехода:
1. Внедрение Domain Driver Design
2. Разделение работы на разумные части (знать когда стоит остановиться)
3. Понять сущности своего дизайна и его границы (Event Storming – техника bottom-up анализа при которой определяется доменные события и обсуждается их влияние на систему)
4. Приоритезация задач на основе доменной модели (самые «востребованные» части не следует брать в работу первыми)
5. Проработать «комбинированные» состояния (часть имеющегося в монолите передается на откуп микросервисам)

6. Реорганизация команды
7. Перевод структур
8. Вносите изменения, а не просто копируйте функциональность
9. Развивайте профессиональные навыки

10. Определите контрольные точки (по которым будем понятно, что движение идет в нужном направлении)
11. Определите качественные характеристики (должны быть измеримыми и достижимыми)
12. Проводите регулярные оценки качества
13. Старайтесь рассматривать варианты решений беспристрастно.
#monlith