프로그램에서 대칭성은 여러 곳에 존재한다. add() 메소드가 있는 곳에는 remove() 메소드가 있다.
대칭성을 찾아내서 명확히 표현해주면, 코드를 읽기가 수월해진다.
1. 대칭성이 결여된 코드
void process(){
input();
count++;
output();
}
2. 위의 둘째 구문을 수정한 코드
void process(){
input();
incrementCount();
output();
}
3. input과 output 메소드 이름은 목적을 반영하는 데 반해, incrementCount는 메소드 구현을 반영한다.
대칭성에 따르면 왜 카운터를 증가시키는지 생각해봐야 한다.
void process(){
input();
tally(); //tally는 일치시키다라는 뜻. 입력을 하나 받고 카운터를 증가시켰으므로 메소드의 목적에 따른 적합한 이름이다.
output();
}
코드 곳곳에서 비슷한 아이디어가 사용되었다면 대칭성에 따라 아이디어를 일관된 방식으로 표현해야 한다.
중복되는 구현을 제거하기 쉬워진다.
대칭성을 찾아내서 명확히 표현해주면, 코드를 읽기가 수월해진다.
1. 대칭성이 결여된 코드
void process(){
input();
count++;
output();
}
2. 위의 둘째 구문을 수정한 코드
void process(){
input();
incrementCount();
output();
}
3. input과 output 메소드 이름은 목적을 반영하는 데 반해, incrementCount는 메소드 구현을 반영한다.
대칭성에 따르면 왜 카운터를 증가시키는지 생각해봐야 한다.
void process(){
input();
tally(); //tally는 일치시키다라는 뜻. 입력을 하나 받고 카운터를 증가시켰으므로 메소드의 목적에 따른 적합한 이름이다.
output();
}
코드 곳곳에서 비슷한 아이디어가 사용되었다면 대칭성에 따라 아이디어를 일관된 방식으로 표현해야 한다.
중복되는 구현을 제거하기 쉬워진다.