#рефакторинг #методы_рефакторинга ![[Pasted image 20241115073144.png]] ### **Проблема** У вас есть временная переменная, которой присваивается результат простого выражения (и больше ничего) ```typescript hasDiscount(order: Order): boolean { let basePrice: number = order.basePrice(); return basePrice > 1000; } ``` ### **Решение** Замените обращения к переменной этим выражением. ```typescript hasDiscount(order: Order): boolean { return order.basePrice() > 1000; } ``` ### **Причины рефакторинга** Переменные предоставляют имена для выражений внутри функции, и поэто­ му они обычно являются Полезными Вещами. Но иногда в действительности имя не говорит больше, чем само выражение. В других случаях вы можете обнару­ жить, что переменная мешает рефакторингу соседнего кода. В этих случаях может быть полезно встроить переменную. ### **Достоинства** - Если переменной присваивается результат выполнения какого-то метода, у вас есть возможность немного улучшить читабельность программы, избавившись от лишней переменной ### **Недостатки** - Иногда с виду бесполезные временные переменные служат для кеширования, то есть сохранения результата какой-то дорогостоящей операции, который будет в ходе работы использован несколько раз повторно. Перед тем как осуществлять рефакторинг, убедитесь, что в вашем случае это не так ### **Порядок рефакторинга** 1. Найдите все места, где используется переменная, и замените их выражением, которое ей присваивалось 2. Удалите объявление переменной и строку присваивания ей значения ### **Обратный рефакторинг** - [[Извлечение переменной (Extract Variable)]] ### **Ссылки** - https://refactoring.guru/ru/inline-temp - [[Мартин Фаулер - Рефакторинг кода на JavaScript]]