- 복잡한 조건부 로직은 복잡함의 원인
- 왜 로직이 발생하는지 재대로 말해주는게 중요하다.
- 함수 추출하기(6.1) 과 비슷하게 코드를 분리하여 이름을 잘 지정해 쓰는걸 글쓴이가 선호함
예시
여름 세금 요금계산 if문
if (!aDate.isBefore(plan.summerStart) && !aDate.isAfter(plan.summerEnd)) {
charge = quantity * plan.summerRate;
} else {
charge = quantity * plan.regularRate + plan.regularServiceCharge;
}
여기서 조건식을 별도 함수로 분리하자
function summer() {
return !aDate.isBefore(plan.summerStart) && !aDate.isAfter(plan.summerEnd);
}
if (summer) {
charge = quantity * plan.summerRate;
} else {
charge = quantity * plan.regularRate + plan.regularServiceCharge;
}
한숟갈 더 보태서 로직도 분리하면
function summer() {
return !aDate.isBefore(plan.summerStart) && !aDate.isAfter(plan.summerEnd);
}
function summerCharge() {
charge = quantity * plan.summerRate;
}
function regularCharge() {
charge = quantity * plan.regularRate + plan.regularServiceCharge;
}
if (summer) {
summerCharge;
} else {
regularCharge;
}
삼항연산자 활용
const charge = summer() ? summerCharge() : regularCharge();