refactoring 2

중복코드 (Duplicated Code)

똑같은 코드 구조가 여러 곳에서 반복된다면 하나로 통합하여 더 나은 프로그램을 만들 수 있다. 코드가 중복되면 각각 코드를 볼 때마다 차이점이 존재하는지 주의 깊게 봐야 한다. 만약 중복 코드 중 하나를 변경하려고 할 때에는 다른 비슷한 코드들도 모두 살펴보고 적절히 수정해야 한다. 함수 추출하기 클래스 내에서의 메서드가 똑같은 표현식을 사용하는 경우 문장 슬라이드하기 클래스 내에서의 메서드가 비슷한데 완전히 똑같지 않은 경우 메서드 올리기 같은 부모로부터 파생된 서브 클래스들에 코드의 중복이 있는 경우 함수 추출하기 여기서 함수란 객체지향 언어의 method 혹은 절차형 언어의 procedure / subroutine 에도 동일하게 적용된다. 함수 추출하기란 코드 조각을 찾아 무슨 일을 하는지 파악한 ..

기이한 이름 (Mysterious Name)

코드를 명료하게 설명하는 요소 중 하나는 이름이다. 그렇기 때문에 함수, 모듈, 변수, 클래스 들은 이름만 보고도 각각 무슨 일을 하고 어떻게 사용해야 하는지 명확하게 알 수 있어야 한다. 냄새와 관련한 Refactoring 기술은 다음과 같다. 함수 선언 바꾸기 이름 바꾸기 필드 이름 바꾸기 함수 선언 바꾸기 함수란 프로그램을 작은 부분으로 나누는 주된 수단이다. 함수 선언은 각 부분이 서로 맞물리는 방식을 표현하고, 소프트웨어에서는 연결부 역할을 한다. 연결부를 잘 정의하면 시스템에 새로운 부분을 추가하기 쉽지만, 잘못 정의하게 되면 요구사항이 바뀔 때 적절히 수정하기 어렵게 된다. 이러한 연결부에서 가장 중요한 요소는 함수의 이름이다. 예를 들어 게시글들을 가져오는 method가 있다고 가정하자. ..