- Теория
- Теория
Просто добавь процент
Второй шаг рефакторинга позади. В консоли всё те же результаты: 660 миль и 540 миль. Значит, логику мы не испортили, и рефакторинг прошёл успешно.
Благодаря тому, что мы отрефакторили наш код, вписать в функцию ещё один if
совсем несложно:
let calculateMiles = function (distance, isBusinessClass) {
let percent = 0.18;
if (isBusinessClass) {
percent += 0.04;
}
if (distance > 3500) {
// Ещё раз изменяем процент
}
return distance * percent;
};
А что будет, если мы не введём переменную процента и не сократим количество выходов из функции?
Код calculateMiles
будет выглядеть очень страшно. Как-то так:
let calculateMiles = function (distance, isBusinessClass) {
if (isBusinessClass && distance > 3500) {
return distance * 0.37;
}
if (isBusinessClass && distance <= 3500) {
return distance * 0.22;
}
if (!isBusinessClass && distance > 3500) {
return distance * 0.33;
}
return distance * 0.18;
};
Или не менее страшно. Вот так:
let calculateMiles = function (distance, isBusinessClass) {
if (isBusinessClass) {
if (distance > 3500) {
return distance * 0.37;
} else {
return distance * 0.22;
}
} else {
if (distance > 3500) {
return distance * 0.33;
} else {
return distance * 0.18;
}
}
};
И это только для двух условий, влияющих на расчёт миль. Представьте, каким громоздким станет код, если появится ещё одно или два новых условия расчёта миль (что в реальной практике встречается часто).
Минимальный вид табов
- index.html
HTML
HTML
Вы перешли на другую страницу
Кликните внутри мини-браузера, чтобы поставить фокус в это окно.
100%