쏙쏙 들어오는 함수형 코딩 Ch04
테스트하기 쉽고 재사용 하기 좋은 코드를 만들기 위해 리팩터링 하는 방법
장바구니 로직 개선하기
- 장바구니 총액
- 구매 합계가 특정 금액 이상이면 무료 배송
- 금액 합계 바뀔 때마다 세금 계산
테스트/재사용하기 쉽게 만들기
- DOM 업데이트와 비즈니스 규칙 분리
- DOM을 사용할 수 있는 곳에서 실행된다고 가정하지 않기
- 전역변수(공유변수) 제거
- 함수가 결괏값(명시적 출력)을 리턴해야 함
함수의 입/출력
함수에 암묵적 입/출력이 있으면 액션이 된다
- 암묵적 입력: 인자 외 다른 입력
- 암묵적 출력: 리턴값 외 다른 출력
테스트/재사용성은 입출력과 관련 있다
액션에서 계산 빼내기
서브루틴 추출 extract subroutine
- 계산에 해당하는 코드를 함수로 분리
- 전역변수 입/출력을 명시적 입/출력으로 변경
- copy-on-write
- 전역 변수를 명시적 입력으로 받았을 때, 함수안에서 복사본 만들기
- ex. 배열이 입력으로 들어오고 배열 내 값을 변경해야 하는 경우, 배열 복사본을 만들어서 복사본을 변경하고 리턴
- copy-on-write
#develop #fp