- Теория
- Теория
Сделай мне красиво
Первый шаг рефакторинга сделан. Самое главное, что функция работает так же, как и до рефакторинга. Значит можно двигаться дальше. Смотрите, в функции дублируется код для расчёта миль. Выражения отличаются только значением процентов:
let calculateMiles = function (distance, isBusinessClass) {
if (isBusinessClass) {
return distance * 0.22;
}
return distance * 0.18;
};
Давайте взглянем на решение с другой стороны: что если в условиях считать процент, а не дублировать расчёт миль? Мы можем переформулировать задачу так, что базовый процент равен 18, а если класс перелёта бизнес, то процент увеличивается на 4. Затем в конце функции один раз считаем и возвращаем мили.
let calculateMiles = function (distance, isBusinessClass) {
// Вводим процент
if (isBusinessClass) {
// Изменяем процент
}
// Рассчитываем и возвращаем мили
};
Второй шаг рефакторинга такой: создаём переменную percent
, которая будет меняться в зависимости от условия, а возвращать из функции будем результат выражения distance * percent
.
Так код станет понятней, да и точка выхода из функции будет только одна. Функцию станет проще читать, потому что условия для изменения процента теперь можно делать не вложенными, а последовательными.
Точка выхода из функции — место, где функция прекращает свою работу и отдаёт результат наружу.
- index.html
Вы перешли на другую страницу
Кликните внутри мини-браузера, чтобы поставить фокус в это окно.