Принцип каскадного снижения связанности и его проверка измерением архитектурных метрик
Тезисы
Что такое связанность и связность (или прочность), многие уже слышали (если нет, не сташно — кратко вспомним об этом), но часто ли вы их замеряете? Да и в целом, у вас никогда не вызывало недоумения, что связанность (coupling) и прочность (или связность, cohesion) — это про примерно одно и то же, но одно — хорошо, а другое — почему-то плохо? :)

Компоненты в большой сложной системе вложены друг в друга, и то, что являлось связанностью (скорее отрицательной характеристикой) на одном уровне — становится прочностью на следующем (т.к. становится внутренней связью компонента, а не внешней)!

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

Поделюсь ссылкой на свой OpenSource-репозиторий с инструментами для измерения архитектурных метрик и покрытия архитектуры тестами (и приглашу всех стать контрибутерами). И, надеюсь, добавлю в вашу копилку +1 принцип проектирования распределенных систем :)
Что такое связанность и связность (или прочность), многие уже слышали (если нет, не сташно — кратко вспомним об этом), но часто ли вы их замеряете? Да и в целом, у вас никогда не вызывало недоумения, что связанность (coupling) и прочность (или связность, cohesion) — это про примерно одно и то же, но одно — хорошо, а другое — почему-то плохо? :)

Компоненты в большой сложной системе вложены друг в друга, и то, что являлось связанностью (скорее отрицательной характеристикой) на одном уровне — становится прочностью на следующем (т.к. становится внутренней связью компонента, а не внешней)!

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

Поделюсь ссылкой на свой OpenSource-репозиторий с инструментами для измерения архитектурных метрик и покрытия архитектуры тестами (и приглашу всех стать контрибутерами). И, надеюсь, добавлю в вашу копилку +1 принцип проектирования распределенных систем :)
Видеозапись доклада
Появится здесь после конференции
Информация о спикере
Руслан Сафин
Архитектор и технический директор, Бындюсофт
Автор и преподаватель курса по микросервисной архитектуре в ИТМО и магистратурах партнёров (Яндекс, ВШЭ и др.)

Член программных комитетов CodeFest, TechLeadConf и CTOConf
  • Руслан Сафин
    Архитектор и технический директор, Бындюсофт
    Автор и преподаватель курса по микросервисной архитектуре в ИТМО и магистратурах партнёров (Яндекс, ВШЭ и др.)

    Член программных комитетов CodeFest, TechLeadConf и CTOConf
Все доклады секции