Как переименовать переменную во всём проекте — и не сломать то, что просто похоже

ИИ назвал переменную data. Потом data2. Потом userData, хотя там вообще заказы. Ты решаешь навести порядок: жмёшь «Найти и заменить», вписываешь user → customer, «Заменить всё».
А через минуту у тебя customername вместо username, кнопка на сайте теперь пишет «Войти как customer», а в запросе к серверу поле, которого сервер не знает. Замена сделала ровно то, что ты попросил: заменила буквы. Все.
Хорошая новость: в редакторе есть инструмент, который меняет не буквы, а смысл. Вот как переименовать что угодно во всём проекте и ничего не задеть.
Почему «Найти и заменить» — плохая идея
Поиск по тексту не понимает код. Для него user, username, users и слово «user» в тексте кнопки — одно и то же сочетание букв.
А код различает. Переменная user в одной функции и user в соседней — это вообще две разные вещи (спасибо области видимости). Переименовать одну — не значит трогать другую.
Нужен инструмент, который видит код так же, как язык программирования. В VS Code и Cursor он называется Rename Symbol — «переименовать символ».
Шесть шагов
-
Сохрани точку возврата. Перед любой массовой правкой сделай коммит. Если что-то пойдёт не так — откатишься одной командой, а не будешь чинить сорок файлов руками.
-
Встань курсором на имя и нажми F2. Прямо на объявление:
const userData = ...— курсор наuserData. Появится маленькое поле ввода. На Mac это тоже F2 — иногда с клавишей Fn. -
Впиши новое имя и посмотри превью. Вместо Enter нажми Shift+Enter — редактор покажет список всех мест, которые изменятся, по файлам. Пробеги глазами: там должны быть только настоящие упоминания именно этой переменной. Похожие имена в список не попадут — в этом весь смысл.
-
Подтверди. Редактор поменяет имя везде, где на него ссылаются: в этом файле, в других файлах, в импортах. Для JavaScript и TypeScript это работает между файлами сразу.
-
Найди то, чего F2 не видит. Rename Symbol понимает код, но не понимает текст. Вот что он пропустит:
- строки в кавычках —
"userData"как ключ или сообщение; - поля, которые приходят с сервера или лежат в базе;
- имена CSS-классов и настройки в JSON-файлах;
- упоминания в комментариях и документации.
Для них открой поиск по проекту — Ctrl+Shift+F (на Mac Cmd+Shift+F) — и включи два переключателя справа от поля: Aa (учитывать регистр) и ab в рамке (только целое слово). Теперь
userне найдётusername. - строки в кавычках —
-
Запусти и проверь. Открой приложение, пройди по экранам, где жила переменная. Посмотри diff: каждая изменённая строчка должна быть понятной. Если есть тесты — прогони.
Как попросить об этом агента
Если работаешь в агенте вроде Claude Code или Cursor, переименование можно поручить. Но сформулируй задачу так, чтобы он не пошёл тем же путём «заменить буквы»:
Переименуй user в customer вездеГлавное в сильной версии — последняя строчка. Список мест до правки — это то же превью, что Shift+Enter в редакторе. Ты видишь масштаб до того, как он случился.
Что получится
Имена в коде начинают говорить правду: orders — это заказы, customer — это покупатель. Следующий раз, когда будешь искать нужный код в проекте, поиск по понятному имени приведёт в нужное место с первого раза. А агент, читая твой код, тоже реже путается: хорошие имена — это контекст, который он получает бесплатно.
Как понять, что имя плохое?
Простой тест: прочитай имя вслух без кода вокруг. data, temp, result2, handleClick3 ничего не говорят — это кандидаты на переименование. Хорошее имя отвечает на вопрос «что тут лежит»: unpaidOrders, isLoading, saveProfile.
А если нужно переименовать файл?
Перетащи или переименуй его прямо в дереве файлов редактора. VS Code предложит обновить все импорты, которые на него ссылаются, — соглашайся и потом проверь diff.
Почему F2 ничего не делает?
Чаще всего редактор не распознал язык файла или ещё не проиндексировал проект. Подожди пару секунд после открытия или проверь, что внизу справа правильно указан язык.
Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.





