Ch04 액션에서 계산 빼내기

·

1 min read

테스트하기 쉽고 재사용 하기 좋은 코드를 만들기 위해 리팩터링 하는 방법

장바구니 로직 개선하기

  • 장바구니 총액

  • 구매 합계가 특정 금액 이상이면 무료 배송

  • 금액 합계 바뀔 때마다 세금 계산

테스트/재사용하기 쉽게 만들기

  • DOM 업데이트와 비즈니스 규칙 분리

  • DOM을 사용할 수 있는 곳에서 실행된다고 가정하지 않기

  • 전역변수(공유변수) 제거

  • 함수가 결괏값(명시적 출력)을 리턴해야 함

함수의 입/출력

함수에 암묵적 입/출력이 있으면 액션이 된다

  • 암묵적 입력: 인자 외 다른 입력

  • 암묵적 출력: 리턴값 외 다른 출력

테스트/재사용성은 입출력과 관련 있다

액션에서 계산 빼내기

서브루틴 추출 extract subroutine

  • 계산에 해당하는 코드를 함수로 분리

  • 전역변수 입/출력을 명시적 입/출력으로 변경

    • copy-on-write

      • 전역 변수를 명시적 입력으로 받았을 때, 함수안에서 복사본 만들기

      • ex. 배열이 입력으로 들어오고 배열 내 값을 변경해야 하는 경우, 배열 복사본을 만들어서 복사본을 변경하고 리턴