개발자로 전향중

리팩터링 2판 3장 - 코드에서 나는 악취 2탄 본문

카테고리 없음

리팩터링 2판 3장 - 코드에서 나는 악취 2탄

hovinee 2024. 12. 24. 18:47

3.4 긴 매개변수 목록

좋종 다른 매개변수에서 값을 얻어올 수 있는 매개 변수가 있을 수 있는데, 이런 매개변수는 매개변수를 질의 함수로 바꾸기로 제거할 수 있다.

 

 

사용 중인 데이터 구조에서 값을을 뽑아 각각을 별개의 매개변수로 전달하는 코드라면 객체 통째로 넘기기를 적용해서 원본 데이터 구조를 그대로 전달한다. 함수 동작의 방식을 정하는 플래그 역할의 매개변수는 플래그 인수 제거하기로 없애준다.

 

3.5 전역 데이터

전역 데이터는 코드베이스 어디에서든 건드릴 수 있고 값을 누가 바꿨는지 찾아낼 메커니즘이 없다는게 문제다. 이를 방지하기 위해 우리가 사용하는 대표적인 리팩터링은 변수 캡슐화하기

3.6 가변 데이터

함수형 프로그래밍에서는 데이터는 절대 변하지 않고, 데이터를 변경하려면 반드시 변경하려는 값에 대항하는 복사본을 만들어서 반환한다는 개념을 기본적으로 삼고 있다. 변수 캡슐화하기를 적용하여 정해놓은 함수를 거쳐야만 값을 수정할 수 있도록하면 값이 어떻게 수정되는지 감시하거나 개선하기 쉽다.

 

API를 만들 때는 질의 함수와 변경 함수 분리하기를 활용해서 꼭 필요한 경우가 아니라면 부작용이 있는 코드를 호출할 수 없게 한다.