3.8 KiB
3.8 KiB
#рефакторинг #методы_рефакторинга
Проблема
У вас есть локальная переменная, которая используется для хранения разных промежуточных значений внутри метода (за исключением переменных циклов).
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).
Порядок рефакторинга
- Найдите место в коде, где переменная в первый раз заполняется каким-то значением. В этом месте переименуйте ее, причем новое название должно соответствовать присваиваемому значению.
- Подставьте её новое название вместо старого в тех местах, где использовалось это значение переменной.
- Повторите операцию для случаев, где переменной присваивается новое значение
