212просмотров
8 января 2026 г.
Score: 233
Самые изменяемые файлы проекта, о чём говорят и как посмотреть Частота изменения файлов — интересная метрика, способная подсветить места повышенных рисков, архитектурных проблем и некоторых других моментов. Для более полной картины происходящего, рекомендуется рассматривать её в совокупности с такой информацией, как количество строк в файле, сложность кода, связи между файлами, количество задач и их связанность. Собрать список самых изменяемых файлов, можно, например, с помощью git log. Важная ремарка: не всегда полученный список будет отражать что-то полезное. Вполне может быть так, что в нём будут одни index, config, types и тому подобные файлы. Хотя, слишком частое изменение одного и того же index файла — тоже, своего рода, знак. git log master \ --name-only \ --pretty=format: \ --since="6.month" \ -- apps//src/ \ | sort | uniq -c | sort -nr | head -5 1564 53 apps//use-some-dialog.ts 42 apps//submit.tsx 31 apps//main.tsx 26 apps//some-content.tsx В моём случае, после беглого изучения файлов из полученного списка, первое что бросилось в глаза — размер: 670, 450, 490 и 390 строк кода. Многовато, особенно в первом из них. На нём и заострим своё внимание. git log master \ --no-merges \ --since="6.month" \ --pretty=format:"%ae %ad %s" --date=short \ apps//use-some-dialog.ts \ | head -100 Из полученного списка коммитов, путём не хитрых манипуляций, извлекаем авторов, а главное — список задач, которых оказалось не мало, они имели слабую связь, а часть из них вообще была исправлением ошибок. Не забывайте вставлять номера задач в каждый коммит, это помогает в подобных случаях, а также в случаях когда нужно понять, почему были внесены те или иные изменения. Всё это: частота изменения файла, количество строк кода, количество и (не) связанность задач, в данном случае, явно сообщает нам о том, что это типичный «god-компонент» (в нашем случае хук) и первый кандидат на ближайший рефакторинг, а также требует особого внимание на ревью и даже в тестировании.