[CS] Refactoring

Posted by qwlake on April 14, 2021
  • 리펙토링 (리펙터링 2판 - 마틴 파울러)
    • 리펙토링을 할 때는 작은 작업을 한 후 빌드 - 테스트 - 커밋 과정을 꼭 거쳐야 한다!
    • 리펙토링 순서
      1. 로직 개선
        1. 반복문 쪼개기 (8.7절) : 변수 값을 누적시키는 부분을 분리한다.
        2. 문장 슬라이드하기 (8.6절) : 변수 초기화 문장을 변수 값 누적 코드 바로 앞으로 옮긴다.
        3. 함수 추출하기 (6.1절) : 적립 포인트 계산 부분을 별도 함수로 추출한다.

          함수 추출 시 체크 포인트

          1. 값이 바뀌지 않는 변수는 매개변수로 전달
          2. 매개변수의 역할이 뚜렷하지 않을 때는 부정 관사(a/an)를 붙여라
          3. 로컬에 존재하는 임시 변수를 질의함수로 바꿔라 (7.4절)
          4. 범위가 좁은 함수, 변수의 이름은 짧게 짓는다
          5. 매개변수가 많을 때는 중간 데이터에 모두 담아서 전달하는 것도 좋다
        4. 변수 인라인하기 (6.4절) : 변수를 제거하고 함수를 바로 호출하여 사용한다.
      2. 단계 쪼개기 (6.11절) : 예, 계산 단계와 포맷팅 단계 분리
      3. 조건부 로직을 다형성으로 바꾸기 (10.4절)