Как мы работали с архитектурным дрейфом и к чему пришли

Хочу рассказать о том, до чего удалось дойти в работе с архитектурным дрейфом. Линтеры и тесты помогают проверять корректность и стиль кода, но с ними не получается эффективно выявить структурные отклонения, которые могут накапливаться со временем и влиять на долгосрочную устойчивость проекта. Вот и задались вопросом, как можно превентивно работать с такими рисками.

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

Базой для этого подхода послужила теоретическая модель PhaseBrain, которая использует торусное представление для анализа динамики структурных изменений. Это позволяет фиксировать отклонения, которые не видны стандартным инструментам, но которые могут значительно повлиять на архитектуру проекта.

Перевод теории в практическую плоскость привёл к созданию инструмента, который интегрируется в процесс code review и анализирует изменения в pull request’ах. Этот инструмент работает с кодом в контексте его исторической структуры, выделяя области, которые могут повлиять на архитектурную целостность проекта.

В итоге производится анализ каждого PR, выявляются скрытые зависимости и изменения, которые могут быть упущены при традиционном анализе. Система маркирует эти изменения как потенциально опасные для структуры, и предоставляет отчет для более глубокого анализа. Всё это происходит в рамках привычного ревью кода.

Технология была реализована в виде GitHub App, который доступен на маркетплейсе гитхаба.

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

Спасибо, что дочитали и отличного дня!

Ниже материалы:

Приложение: https://github.com/marketplace/revieko-architecture-drift-radar

Статья по теме: https://zenodo.org/records/17820299

Начать дискуссию