- 함수형 프로그램밍에는 컬렉션 데이터를 다룰 수 있는 다양하고 강력한 추상 함수가 있다.
- 그중 가장 많이 쓰이는
map()
, filter()
, reduce()
라고 하는 함수가 있다.
- 함수형 프로그래머는 반복문 대신 세 가지 함수형 도구가 모든 작업의 기반이 되기 때문에 작업대 처럼 사용한다.
코드의 냄새 : 함수 이름에 있는 암묵적 인자
- 기존에 함수이름 자체에 암묵적 인자가 들어있었다. → 코드의 냄새
- 특징
- 거의 똑같이 구현된 함수가 있다. → 함수 이름만 다르고 똑같음….
- 함수 이름이 구현에 있는 다른 부분을 가리킨다.
리팩터링 1. 암묵적 인자를 드러내기
- 함수 이름에 있는 암묵적 인자를 드러낸다
- 암묵적 인자가 일급 값이 되도록 함수에 인자를 추가한다.
<aside>
💡 잠재적 중복을 없애고 코드의 목적을 더 잘 표현 할 수 있다.
</aside>
- 함수 이름에 있는 암묵적 인자를 확인한다.
incrementQuantitiyByName
, incrementSizeByName
- 명시적인 인자를 추가한다.
- 함수 본문에 하드 코딩된 값을 새로운 인자로 바꾼다.
- 함수를 호출 하는 곳을 고친다.
리팩터링2. 함수 본문을 콜백으로 바꾸기
- 함수 본문을 콜백으로 바꾸기 리팩터링으로 함수 본문에 어떤 부분을 콜백으로 바꾼다.
- 일급 함수로 어떤 함수에 동작을 전달 할 수 있다.