Test-Driven Development - 리팩토링

다용도리모콘·2021년 6월 27일
0

개발 책 읽기

목록 보기
8/18
  1. 차이점 일치시키기

    비슷해 보이는 두 코드 조각을 합치려면 어떻게 해야 할까? 두 코드가 단계적으로 닮아가게끔 수정한다. 이 둘이 완전히 동일해지면 둘을 합친다.

  2. 변화 격리하기

    • 객체나 메서드의 일부만 바꾸려면 어떻게 해야 할까? 일단, 바꿔야 할 부분을 격리한다.
    • 코드에 메서드가 하나 더 명시되는 비용과 또 하나의 개념이 명시되는 가치, 이 양자 간의 균형을 잡도록 하라.
  3. 데이터 이주시키기

    표현 양식을 변경하려면 어떻게 해야 할까? 일시적으로 데이터를 중복시킨다.
    내부의 표현 양식을 변경한 후 외부 인터페이스를 변화시킨다.

  4. 메서드 추출하기

    길고 복잡한 메서드를 읽기 쉽게 만들기 위해 기존 메서드의 반복문 내부 코드, 반복문 전체, 조건문의 가지들을 별도의 메서드로 추출한다.

  5. 메서드 인라인

    너무 꼬여있거나 산제한 제어 흐름을 단순화 하기 위해 메서드를 호출하는 부분을 호출될 본문으로 교체한다.(메서드 추출의 반대)
    이후 제어의 흐름을 파악하고 실제적인 필요성에 기반하여 다시 추상화를 수행한다.

  6. 인터페이스 추출하기

    복수의 구현을 추가 하기 위해 공통되는 오퍼레이션을 담고 있는 인터페이스를 만든다.

  7. 메서드 옮기기

    한 메서드에서 다른 객체에 하나 이상의 메시지를 보내는 것을 의심해야 한다.

  8. 메서드 객체

    여러 개의 매개 변수와 지역 변수를 갖는 복잡한 메서드를 표현할 때 메서드를 꺼내 별도의 객체로 만든다.

  9. 매개 변수 추가

  10. 메서드 매개 변수를 생성자 매개 변수로 바꾸기

    동일한 매개 변수를 같은 객체의 서로 다른 몇몇 메서드로 전달하는 경우라면, 매개 변수를 한 번만 전달하게끔 생성자를 통해 전달 받도록 한다.

0개의 댓글