15장 하나로 합치기

목표를 잡는데 익숙해져라.

  • 코드의 어디선가 나쁜 냄새가 나면, 그 문제를 해결하겠다는 결심을 하고, 목표를 향해 전진하라.
  • 진실이나 아름다움을 추구하기 위해 리팩토링을 하는 것이 아니라, 프로그램의 세상을 좀더 이해하기 쉽고 약해지는 프로그램에 대한 통제력을 되찾으려고 하는 것이다.

확실하지 않을 때는 멈추어라.

  • 목표를 향해 움직이다가 지금 하고 있는 작업이 프로그램의 의미체계(semantics)를 그대로 보존하는 것인지 확신할 수 없을때가 오면, 그 때는 중단하라
  • 코드가 더 나아졌으면 진행한 결과를 반영하고, 그렇지 않으면 변경한 것을 버려라

왔던 길로 되돌아가기 (Backtrack)

  • 리팩토링이라는 분야는 배우기도 어렵고, 비록 잠시뿐이라 하더라도 방향을 읽기 쉽다. 저자도 자주 방향을 잃는다.
  • 내가 변경한 것중 어떤 것이 문제를 일으키는지 찾을 수가 없을 경우 중단하라. 제대로 실행되는 것 중 가장 최근의 것으로 되돌리고 다시 변경을 하나씩 하면서 테스트를 실행하라.
  • 자제력을 읽고, 혼란의 문제의 봉착에 빠졌을 경우 중단하고, 머리가 맑을 때 다시 한번 생각하면 의외로 쉽게 해결 할 수 있다.

듀엣(Duets)

  • 다른 사람과 함께 리팩토링 하기 바란다. 개발자들이 짝을 이루어 작업하는 것은 많은 이점이 있다.



리팩토링을 할 때 필연적으로 코드가 제대로 작동하지 않는 경우를 발견할 경우 유혹에 빠지면 안된다.
리팩토링을 할 때 목표는 그 코드가 처음 발견했을 때와 완전히 동일하게 같은 결과를 내도록 남겨 두는 것이다.
그 이상도, 그 이하도 아니다.

문서에 대하여