본문 바로가기
Research/Good codes

Refactoring 2판) 01.리팩터링 기본

by RIEM 2023. 8. 29.
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

댓글