11.1 질의 함수와 변경 함수 분리하기
리팩터링 전
리팩터링 후
🧷 배경
겉보기 부수효과가 전혀 없이 값을 반환해주는 함수를 추구해야 한다. 겉보기 부수효과가 있는 함수와 없는 함수는 명확히 구분하는 것이 좋다. 이를 위한 한가지 방법은 '질의 함수는 모두 부수효과가 없어야 한다'는 규칙을 따르는 것이다.
겉보기 부수효과란?
외부 세계 영향을 주는 네트워크 통신, 입출력 변경, 데이터 변형 등을 의미
🧷 절차
대상 함수를 복제하고 질의 목적에 충실한 이름을 짓는다.
새 질의 함수에서 부수효과를 모두 제거한다.
정적 검사를 수행한다.
원래 함수(변경 함수)를 호출하는 곳을 모두 찾아냄. 호출하는 곳에서 반환 값을 사용한다면 질의 함수를 호출하도록 바꾸고, 원래 함수를 호출하는 코드를 바로 아래 줄에 새로 추가한다. 하나 수정할 때마다 테스트한다.
원래 함수에서 질의 관련 코드를 제거한다.
테스트한다.
🧷 예시
🧷 리팩터링 전
🧷 리팩터링 후
Last updated