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

2.8 KiB
Raw Blame History

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

!Pasted image 20241115073144.png

Проблема

У вас есть временная переменная, которой присваивается результат простого выражения (и больше ничего)

hasDiscount(order: Order): boolean {
  let basePrice: number = order.basePrice();
  return basePrice > 1000;
}

Решение

Замените обращения к переменной этим выражением.

hasDiscount(order: Order): boolean {
  return order.basePrice() > 1000;
}

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

Переменные предоставляют имена для выражений внутри функции, и поэто­ му они обычно являются Полезными Вещами. Но иногда в действительности имя не говорит больше, чем само выражение. В других случаях вы можете обнару­ жить, что переменная мешает рефакторингу соседнего кода. В этих случаях может быть полезно встроить переменную.

Достоинства

  • Если переменной присваивается результат выполнения какого-то метода, у вас есть возможность немного улучшить читабельность программы, избавившись от лишней переменной

Недостатки

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

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

  1. Найдите все места, где используется переменная, и замените их выражением, которое ей присваивалось
  2. Удалите объявление переменной и строку присваивания ей значения

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

Ссылки