⚡ 함수 추출 하기
- 특정 역할을 하는 코드 뭉치를 하나의 함수로 분리 하고, 목적에 맞는 이름을 붙여주는 작업
- 코드를 보고
무슨일을 하는지 파악하는데 한참이 걸린다면, 그 부분을 함수로 추출 한 뒤 무슨 일에 알맞은 이름을 지어주는 것
- 일반적으로 긴 코드를 추출하는 경우가 잦으나, 한줄의 코드를 분리하는 일도 필요하다면 진행
- 성능 최적화를 고려하지 않아도 될 정도의 작업이니, 일단 리팩터링 하고 고민 할 것
- 이름을 잘 짓는것이 해당 리팩터링의 핵심
- 매우 간단하더라도, 함수로 뽑아서 목적이 더 잘 드러나는 이름을 붙일 수 있다면, 추출하는 것이 좋음
- 함수의 중첩을 지원 한다면, 중첩 함수를 추가하는 것도 고려 해볼 수 있음
⚡ 함수 인라인 하기
- 추출한 함수를 다시 인라인 하는 작업
- 함수 본문이 이름만큼 명확 한 경우 / 함수가 잘못 추출 된 경우 / 간접 호출을 너무 과하게 쓰는 경우 ( 위임하기만 하는 함수가 너무 많은 경우 ) 해당 리팩터링을 고려
⚡ 변수 추출 하기
- 지역변수를 활용하여 표현식을 쪼개어 관리하기 더 쉽게 만드는 작업
- 복잡한 로직을 구성하는 단계마다 이름을 붙일 수 있어 코드의 목적을 더 뚜렷이 나타 낼 수 있음
- 변수가 클래스 전체의 문맥에 영향을 줄 수 있는 경우에, 변수를 추출한 함수 그 자체가 적당한 크기의 문맥이 되어 주기 때문에 메서드로 추출하는것을 권장
⚡ 변수 인라인 하기
- 변수를 추출한 함수를 변수 추출 한 곳으로 인라인 하는 작업
- 추출한 변수가 주변 코드를 리팩터링 하는데 방해가 되거나, 추출한 함수가 원래 표현식과 다를 바 없는 경우에 진행
⚡ 함수 선언 바꾸기
- 함수의 이름을 바꾸거나, 함수가 받는 parameter ( signature )를 변경하는 작업