728x90
리팩터링의 기본
~p.78
만약 프로그램이 새 기능을 추가하기 복잡한 구조라면, 먼저 기능을 추가하기 쉬운 구조로 리팩터링한 다음 원하는 기능을 추가한다
리팩터링의 첫 단계는 리팩터링 코드 영역을 검사할 테스트 코드부터 짠다. 테스트의 성공 여부 확인은 자동화시켜서 효율을 높인다. 리팩터링 코드가 정상 작동되는지 비교 확인할 수 있기 때문이다
리팩터링을 할 때 작은 단계로 수정 후 바로 테스트를 진행한다. 작게 수정했을 때 발생한 문제는 금방 해결할 수 있기 때문이다.
Git은 리팩터링 하나 했을 때 바로바로 커밋하고, 자잘한 변경들이 유의미한 단위로 뭉쳐지면 푸시한다
임시 함수를 질의 함수로 바꾸기
- 질의 함수 : 값을 계산하여 리턴하는 함수
- 질의 함수에 부수효과가 없다면 변수에 저장해서 변수를 계속 사용하지 않고 그냥 바로 사용한다
- 로컬 범위에 변수 이름들이 늘어나는 것을 방지
좋은 코드는 수정하기 쉬운 코드다. 코드 수정을 해야할 때 고칠 곳을 빠르게 찾아 수정할 수 있다면, 생산성을 올리고 고객에게 필요한 기능을 낮은 비용으로 제공할 수 있다.
리팩터링 요소
- 더 기능 추가하기 쉬운 구조로 바꿀 수 없는가?
- 이를 위해 더 쪼갤 수 있는가?
- 함수명, 변수명을 더 명확하게 바꿀 수 있는 곳은 없는가? ex) 반환값은 -> result, 매개변수 역할 뚜렷하지 않는 경우 부정 관사(a/an) 붙여서 -> ePerformance
- 질의 함수로 바꿀 수있는 임시 변수가 있는가?
Quotes
- 간결함이 지혜의 정수일지 몰라도, 프로그래밍에서만큼은 명료함이 진화할 수 있는 소프트웨어의 정수다
- 캠핑장에 도착했을 때보다 깔끔하게 정돈하고 떠나듯, 프로그래머도 코드베이스를 작업 전보다 건강하게(Healthy) 만들어놓고 떠나야 한다
728x90
'Research > Good codes' 카테고리의 다른 글
수 조작하기 reduce + function dict (1) | 2023.11.16 |
---|---|
Refactoring_01.리팩터링 기본 (0) | 2023.09.27 |
댓글