Глянь мой новый курс по Git! Привет! Глянь мой новый курс по Git! Привет! Глянь мой новый курс по Git на GitByBit.com! Привет! Хочешь круто подтянуть Git? Глянь мой новый курс на GitByBit.com!

Встраивание переменной

Также известен как: Inline Temp

Проблема

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

Решение

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

До
boolean hasDiscount(Order order) {
  double basePrice = order.basePrice();
  return basePrice > 1000;
}
После
boolean hasDiscount(Order order) {
  return order.basePrice() > 1000;
}
До
bool HasDiscount(Order order)
{
  double basePrice = order.BasePrice();
  return basePrice > 1000;
}
После
bool HasDiscount(Order order)
{
  return order.BasePrice() > 1000;
}
До
$basePrice = $anOrder->basePrice();
return $basePrice > 1000;
После
return $anOrder->basePrice() > 1000;
До
def hasDiscount(order):
    basePrice = order.basePrice()
    return basePrice > 1000
После
def hasDiscount(order):
    return order.basePrice() > 1000
До
hasDiscount(order: Order): boolean {
  let basePrice: number = order.basePrice();
  return basePrice > 1000;
}
После
hasDiscount(order: Order): boolean {
  return order.basePrice() > 1000;
}

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

Встраивание локальной переменной почти всегда используется как часть замены переменной вызовом метода или для облегчения извлечения метода.

Достоинства

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

Недостатки

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

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

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

  2. Удалите объявление переменной и строку присваивания ей значения.