프로그램이 새로운 기능을 추가하기 편한 구조라 아니라면,
⇒ 기능을 추가하기 쉬운 현태로 리팩터링 하고 나서 원하는 기능을 추가한다.
함수 쪼개기 원칙
- 값이 변하지 않는 변수는 매개변수로 전달한다.
- 함수 안에서 바뀌는 조심히 다뤄야 한다.
- 변수 초기화 고려
- 반환 값 사용여부에 대한 고려
[별도 함수를 빼냈을 때 유효범위를 벗어나는 변수]
→ 새 함수에서는 사용할 수 없는 변수가 있는지 확인한다.
⇒ 새 함수에서도 필요하지만 값을 변경하지 않기 때문에 매개변수로 전달한다.
⇒ 함수 안에서 값이 바뀌는데 이런 변수는 조심해서 다뤄야한다.
함수 추출하기 (SIMPLE VERSION)
- 값이 변하지 않는 변수는 매개변수로 전달한다.
- 함수내에 변수를 초기화하는 코드를 작성한다.
✨긴 함수를 리팩터링 할 떄는 전체 동작을 각각 부분으로 나눌 수 있는 지점을 찾는다.
(ex) swtich
코드 조각을 별도 함수로 추출한다
별도 함수로 뺏을 때, 유효범위를 벗어나는 변수 유무를 확인한다.
✨리팩토링은 조금씩 변경하고 테스트하여, 피드백 주기를 짧게 가져감으로서 실수하더라도 버그를 쉽게 잡도록 한다.
추출 함수코드에서 명확하게 표현할 수 있는 방법을 찾는다.
(ex) 명확한 변수명
(tip) 매개변수의 역할이 뚜렷하지 않을 떄는 부정관사(a/an)을 붙인다.
계산 가능한 매개변수는 임시변수를 질의함수로 바꾸기를 통해 (7.4장) 리팩토링 할 수 있다.
지역 변수를 제거하여 얻는 큰 장점은 추출 작업이 쉬워진다는 것이다.
→ 유효 범위를 신경 쓸 대상이 줄어든다.