Глянь мій новий курс по 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. Видаліть оголошення змінної і рядок присвоєння їй значення.