Claude хорошо справляется с рефакторингом: упрощает запутанный код, разбивает большие функции, убирает дублирование. Главное правило — двигаться маленькими шагами и проверять каждый шаг тестами. Разберём безопасный порядок работы.
Принцип маленьких шагов
Не просите «перепиши весь модуль». Большие изменения трудно проверить, и в них легко спрятать ошибку. Лучше серия небольших правок: переименовать, вынести функцию, убрать дубль. Каждая правка — отдельный коммит, после каждой — запуск тестов.
Что дать Claude
- код, который нужно изменить, и связанные с ним функции;
- что именно не нравится: длинная функция, дублирование, непонятные названия;
- ограничения: не менять публичный интерфейс, сохранить поведение, не добавлять зависимости;
- стиль кода, принятый в проекте.
Шаблон запроса
Отрефактори функцию process_order ниже. Цель — разбить её на небольшие функции с понятными названиями. Ограничения: не менять сигнатуру и поведение, не добавлять библиотеки. Сначала опиши план изменений, потом покажи код. Отметь места, где поведение может измениться.
Цикл работы
- Убедитесь, что у кода есть тесты. Если нет — сначала напишите их: см. Claude для unit-тестов.
- Попросите план рефакторинга.
- Выполните один шаг плана.
- Запустите тесты.
- Сделайте коммит и переходите к следующему шагу.
Чего не просить
- «Сделай лучше» — без критериев модель может изменить слишком много.
- «Перепиши на другой фреймворк» за один раз — это не рефакторинг, а новый проект.
- Одновременно менять логику и структуру.
Риски
- Незаметная смена поведения: другой порядок операций, иначе обрабатываются пустые значения.
- Потеря граничных случаев, которые были в старом коде неявно.
- Удаление «лишнего» кода, который на самом деле где-то используется.
Поэтому каждое изменение нужно смотреть в diff и проверять тестами. После рефакторинга полезно сделать ревью — см. Claude для code review.
Какую модель выбрать
Для небольших функций хватает Sonnet. Для больших модулей со сложными связями лучше подходит Opus — подробнее в статье Claude Sonnet или Opus. Рефакторинг SQL-запросов описан в статье Claude для SQL-запросов.
Частые вопросы
Может ли Claude сам вносить изменения в проект?
Claude Code работает в терминале и может менять файлы и запускать тесты. В обычном чате вы копируете код сами.
