2011년 5월 26일 목요일

Replace Magic Number with Symbolic Constant

double potentialEnergy(double mass, double height) {
return mass * height * 9.81;
}

double potentialEnergy(double mass, double height) {
return mass * GRAVITATIONAL_CONSTANT * height;
}
static final double GRAVITATIONAL_CONSTANT = 9.81;


특별한 의미를 가지는 숫자 리터럴이 있으면 상수를 만들고, 의미를 잘 나타내도록 이름을 지은 다음 숫자를 상수로 바꾸어라.

! 동기
  • 매직 넘버는 특정 값을 가지는 숫자로 보통 그 의미는 명확하지 않다.
  • 상수를 사용하면 퍼포먼스에 영향은 없고 코드의 가독성은 향상된다.
  • 만약 매직 넘버가 타입 코드라면, Replace Type Code with Class를 고려해보라
  • 만약 매직 넘버가 배열의 길이라면, 배열에 대한 루프를 돌 때 anArray.length를 대신 사용하라.

! 절차
  • 상수를 선언하고 그 값을 매직 넘버의 값으로 설정한다.
  • 매직 넘버가 사용되는 곳을 모두 찾는다.
  • 매직 넘버가 상수의 의미와 맞는지 보고, 의미가 맞으면 상수로 바꾼다.
  • 모든 매직 넘버를 바꾼 후에 컴파일, 테스트를 한다. 이때 모든 동작이 바뀌기 전과 동일해야 한다.

! 관련 리팩토링
  • Replace Type Code with Class

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...