Skip to content

Latest commit

 

History

History
59 lines (45 loc) · 1.28 KB

10.1 조건문 분해하기.md

File metadata and controls

59 lines (45 loc) · 1.28 KB

10.1 조건문 분해하기

  • 복잡한 조건부 로직은 복잡함의 원인
  • 왜 로직이 발생하는지 재대로 말해주는게 중요하다.
  • 함수 추출하기(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();