Как построить сильную архитектуру?

У любой достаточно сложной системы есть определённая архитектура - явная или сложившаяся стихийно. Она задаёт ключевые элементы системы, связи между ними и принципы её организации.

Оглянемся вокруг. Примеров из жизни полно.

🔹 Тело животного. Его органы - элементы, нервы, артерии, сухожилия - связи 🔹 Солнечная система. Звёзды, планеты, спутники и астероиды - элементы а гравитационное взаимодействие и орбитальное движение - связи. 🔹 Лесная экосистема, муравейник, даже клетка - имеет элементы и связи между ними.

Это постаралась природа и эволюция. Выживала лишь система, имеющая сильную архитектуру. Человек - не дурак и понимает это устройство. Мы, люди, создали множество систем архитектурно очень похожих на природные: 🔹 Автомобиль. Двигатель, коробка передач, даже корпус - элементы, а провода, трубки с маслами или воздухом, крепления - связи. 🔹 Смартфон. Процессор, экран, аккумулятор, камеры и датчики - элементы а электрические цепи, программные интерфейсы и обмен данными - связи 🔹 Самолёт, электростанция, роботы, даже языки - то же система, похожей архитектурой. Звуки, слова, грамматические конструкции и значения - элементы а правила словообразования, синтаксис и семантические отношения - связи.

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

Что же делает архитектуру сильной? Не количество паттернов, абстракций или микросервисов. Сильная архитектура помогает системе меняться с предсказуемой стоимостью, локализует ошибки и остаётся понятной команде.

Это превью серии из восьми постов. Каждый четверг мы будем разбирать один практический вопрос:

🔹Как оценить архитектуру; 🔹Как управлять связанностью; 🔹Как находить границы модулей; 🔹Куда направлять зависимости; 🔹Где размещать бизнес-логику; 🔹Как построить модульный монолит; 🔹Как проектировать транзакции и события; 🔹Как постепенно улучшать существующий проект.

Будет минимум архитектурной магии и максимум примеров на PHP.

А ещё можно присоединится к моему ТГ каналу. Там удобнее :) https://t.me/retro_s_pristrastiem

Как построить сильную архитектуру? | Сетка — социальная сеть от hh.ru