2011년 5월 26일 목요일

Introduce Explaining Variable

if ( (platform.toUpperCase().indexOf("MAC") > -1) &&
     (browser.toUpperCase().indexOf("IE") > -1) &&
      wasInitialized() && resize > 0 )
{
  // do something
}
final boolean isMacOs     = platform.toUpperCase().indexOf("MAC") > -1;
final boolean isIEBrowser = browser.toUpperCase().indexOf("IE")  > -1;
final boolean wasResized  = resize > 0;

if (isMacOs && isIEBrowser && wasInitialized() && wasResized)
{
// do something
}



복잡한 수식이 있는 경우에는 수식의 결과나 또는 수식의 일부에 자신의 목적을 잘 설명하는 이름으로 임시변수를 사용하라.

! 동기
  • 조건문에서 각각의 조건의 뜻을 잘 설명하는 이름의 변수로 만들어 사용할 때 유용하다.
  • 긴 알고리즘에서 각 단계의 계산 결과를 잘 지어진 이름의 임시변수로 설명할 수 있다.
  • 능하면 Extract Method를 사용하라.

! 절차
  • final 변수를 선언하고, 복잡한 수식의 일부를 이 변수에 대입한다.
  • 원래의 복잡한 수식를 임시변수로 바꾼다.

! 관련 리펙토링
  • Extract Method
  • Replace Temp with Query
  • Replace Method with Method Object

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

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