Base/Knowledges/IT/Рефакторинг/Методы рефакторинга/Расщепление переменной (Split Variable).md
2026-02-23 19:52:05 +03:00

3.8 KiB
Raw Blame History

#рефакторинг #методы_рефакторинга

!Pasted image 20250204082823.png

Проблема

У вас есть локальная переменная, которая используется для хранения разных промежуточных значений внутри метода (за исключением переменных циклов).

let temp = 2 * (height + width);
console.log(temp);
temp = height * width;
console.log(temp);

Решение

Используйте разные переменные для разных значений. Каждая переменная должна отвечать только за одну определённую вещь.

const perimeter = 2 * (height + width);
console.log(perimeter);
const area = height * width;
console.log(area);

Причины рефакторинга

Если вы «экономите» переменные внутри функции, повторно используете их для различных несвязанных целей, у вас обязательно начнутся проблемы в тот момент, когда потребуется внести какие-то изменения в код, содержащий эти переменные. Вам придётся перепроверять все случаи использования переменной, чтобы удостовериться в отсутствии ошибки в коде.

Достоинства

  • Каждый элемент программы должен отвечать только за одну вещь. Это сильно упрощает поддержку кода в будущем, так как вы можете спокойно заменить этот элемент, не опасаясь побочных эффектов.
  • Улучшается читабельность кода. Если переменная создавалась очень давно, да еще и в спешке, она могла получить элементарное название, которое не объясняет сути хранимого значения, например, k, a2, value и т. д. У вас есть шанс исправить ситуацию, назначив новым переменным хорошие названия, отражающие суть хранимых значений. Например, customerTaxValue, cityUnemploymentRate, clientSalutationString и т. д.
  • Этот рефакторинг помогает в дальнейшем Извлечение функции (Extract Function).

Порядок рефакторинга

  1. Найдите место в коде, где переменная в первый раз заполняется каким-то значением. В этом месте переименуйте ее, причем новое название должно соответствовать присваиваемому значению.
  2. Подставьте её новое название вместо старого в тех местах, где использовалось это значение переменной.
  3. Повторите операцию для случаев, где переменной присваивается новое значение

Обратный рефакторинг

Ссылки