❓Как искать архитектурный долг не по ощущениям, а по данным?

Об этом был мой доклад на фестивале IT Weekend в IT-Куб.Норильск: «Архитектурный долг: как найти зоны высокой связности и перестать платить “проценты”».

Главная мысль: техдолг почти всегда сначала ощущается, а уже потом формулируется.

Фича на день превращается в неделю. Маленькая правка тянет изменения в десяти файлах. Команда говорит: «это место лучше не трогать».

И «тут всё сложно» — слабый аргумент. Чтобы обсуждать архитектурный долг нормально, нужны данные и метрики.

💡И внезапно у вас всегда есть история Git.

Что можно из коммитов достать:

• hotspots — файлы, которые меняются чаще всего; • churn — объём изменений за период; • temporal coupling — файлы, которые регулярно меняются вместе; • скрытые зависимости, которых нет в imports, но которые видны по истории изменений; • классы, которые становятся слишком «дружелюбными» ко всем классам и начинают нарушать SRP.

Это Behavioural Code Analysis: мы смотрим не только на текущий код, а на поведение системы во времени. Каждый из этих показателей — только отправная точка для анализа.

Hotspot не означает сразу «плохой файл». Он означает: через это место проходит много изменений и тут появляются риски, а возможно и баги.

Temporal coupling особенно полезен: если два файла постоянно меняются вместе, значит между ними есть причина связи. Даже если формально они никак не зависят друг от друга.

В докладе показывал, как искать такие зоны через git log и утилиту code-maat. Но сначала все эти данные нужно как-то разобрать — и тут в комнату заходит...

Конечно, AI, куда же без него. AI-Агент проверит все подозрительные точки в коде, соберёт отчёт по Git-истории, churn, hotspots и temporal coupling. И вам не надо ревьювить большой объём сигналов. На самом деле со скиллом (он есть в материалах – весь цикл можно отдать ИИ)

С этим уже можно идти к менеджерам не с фразой «мне кажется, надо порефакторить», а с конкретной проблемой и аргументами.

После этого кроме «кайфово переписать код» вы сможете сделать разработку дешевле и быстрее в будущем. С таких подходом и формирую архитектурный техдолг при работе с проектом.

📖 Презентация, пример скилла, а также дополнительные материалы в репозитории на гитхабе

🎙️ Посмотреть видео доклада