- Теория
- Теория
Отбрось всё лишнее
Количество бонусных миль в Кексофлоте зависит и от класса, и от расстояния. Чтобы завершить программу, можно в каждую ветку проверки на класс перелёта добавить проверки на расстояние. Но такой вариант выглядит громоздко.
Логика расчёта процентов довольно сложная, а хочется описать её максимально просто и изящно. Поэтому перед добавлением нового условия давайте изменим структуру существующего кода, но так, чтобы он работал, как прежде. То есть займёмся рефакторингом.
Посмотрим на код calculateMiles
. Мы дважды использовали оператор return
, который останавливает выполнение функции:
let calculateMiles = function (distance, isBusinessClass) {
if (isBusinessClass) {
return …;
} else {
return …;
}
};
Если выбран бизнес-класс, программа выполнит код из ветки if
и выйдет из функции. В этом случае неважно, какой код идёт в calculateMiles
дальше. И наоборот, если выбран эконом, программа в любом случае не зайдёт внутрь первой ветки условия и просто выполнит код, который идёт после неё. Поэтому ветка else
здесь необязательна, её можно опустить.
let calculateMiles = function (distance, isBusinessClass) {
if (isBusinessClass) {
return …;
}
return …;
};
Разработчики рефакторят свой код для того, чтобы он был понятен коллегам и самому автору через какое-то время, легко поддерживался, не содержал в себе повторов, огромных сложных конструкций и так далее. Здесь, как в школе: сначала пишем в черновик, пробуем, зачёркиваем, пробуем снова, пока не придём к решению, а потом аккуратно выводим в чистовик.
При этом рефакторингом занимаются все, даже самые крутые рок-звёзды из мира разработки.
- index.html
Вы перешли на другую страницу
Кликните внутри мини-браузера, чтобы поставить фокус в это окно.