Вэб ИИ не всемогуч! Спасаю кодера

Сайт работал. Поиск летал. База переехала на Turso. Всё было зашибись. И тут я полез в код и ужаснулся.

Файл main.rs весил 1134 строки. А content.rs разросся до 2063 строк. В одном файле лежало всё: чтение постов, обложки, теги, работа с Markdown, обработчики страниц. Это как шкаф, куда свалили всё в кучу: носки, молотки, документы. Найти что-то нереально. А добавить что-то новое - страшно, потому что можно случайно сломать соседнее.

Плюс у меня в планах аналитика, чат, регистрация. Если оставить как есть, main.rs распухнет до 5000 строк. ИИ просто не сможет это переварить. Когда файл огромный, нейросеть теряет контекст, путается и начинает ломать то, что уже работает.

Поэтому я сел за рефакторинг.

Как резал

Не одним взмахом. По шагам. Сделал 15+ коммитов. Каждый шаг - это бэкап файла, проверка cargo check и прогон всех 44 тестов. Если что-то падало, скрипт сам откатывал изменения назад. Сайт вообще не заметил процеса. Работал как часы.

Вырезал по кусочкам. Сначала простые функции в отдельную папку. Потом разобрал content.rs на 8 модулей. Потом вынес рендеринг страниц и обработчики запросов.

Что в итоге

main.rs сдулся с 1134 строк до 153. Там остался только запуск сервера и роутер. content.rs вообще превратился в 17 строк (просто карта модулей), а сам код разложил по файлам. Самый большой теперь весит 570 строк.

44 теста на месте. Ни одной регрессии. Бенчмарки не просели.

Грабли

Канешно, без этого не обошлось. При вырезании структур я забыл сделать поля публичными. В одном файле всё было видно, а после разрезания - нет. Пришлось везде добавлять pub. Забыл импорты. Clippy орал как резаный на неиспользуемый код.

Но самый цирк был, когда компилятор Rust выдал Internal Compiler Error. Просто взял и упал. Я чуть не поседел. Думал, всё, приехали, я сломал Раст. А оказалось, это баг самого компилятора. Запустил еще раз - прошло.

Зачем всё это

Чтобы завтра я мог спокойно добавить аналитику. Создал новый файл handlers/analytics.rs на 100 строк, подключил, и всё. main.rs не трогаю. ИИ видит файл в 200-300 строк, понимает его целиком и пишет нормальный код. А не пытается запомнить телефонный справочник.

Рефакторинг - это не про «сделать красиво». Это про то, чтобы завтра можно было строить дальше и не развалить всё к чертям.

Ушло на это часов семь. Было пять откатов. Но это того стоило.