E D R , A S I H C RSS

Refactoring Discussion

Refactoring 과 관련된 론, 문/답변 다.

는 글다.( ) 는 부 바랍다.


refactoring , Refactoring 결과가 같 다. 라는 것다.

Martin Folwer Refactoring p326(), 10 Parameterize Method 를 보면 다과 같다.


~cpp 
protected Dollars baseCharge() {
  double result = Math.min(lastUsage(),100) * 0.03;
  if (lastUsage() > 100) {
    result += (Math.min (lastUsage(),200) - 100) * 0.05;
  };
  if (lastUsage() > 200) {
    result += (lastUsage() - 200) * 0.07;
  };
  return new Dollars (result);
}


과 같 다.

protected Dollars baseCharge() {
  double result = usageInRange(0, 100) * 0.03;      //--(1)
  result += usageInRange (100,200) - 100) * 0.05;
  result += usageInRange (200, Integer.MAX_VALUE) * 0.07;
  return new Dollars (result);
}

protected int usageInRange(int start, int end) {
  if (lastUsage() > start) return Math.min(lastUsage(),end) - start;
  else return 0;
}


(1) 드를 보면 달라 다. 드는 더 데, 는 0 보다 게 되다. (를 들 lastUsage() 면 결과가 달라다)

"MatrinFowler lastUsage()가 0 는것 (드를 보고 면 그렇다) 당 냐?" 라고 는 모르만, Refactoring 결같 던 "를 명게"라는 부 Refactoring라는 다보 결과를 낳것 같다. ()

(1) 드는 럼 그대로 두나, usageInRange(Integer.MIN_VALUE, 100)는게 맞다.

뿐, . lastUsage() Integer.MIN_VALUE 나, Integer.MAX_VALUE 라면? ( 다고 는가?)

--


  • 렸느냐 - 만 로그램 내 바가 맞는 UnitTest Code 기는게 나 것 같다고 . 글 결국 Context 내 까. 된다면 Test Code 는 . ( ''는 각 모 input output 로 바꿔 듯)

달라는, Refactoring Test Code 를 만들것고, 로 따른 부는 결론 될 것라는 다. ( 드로 바뀌렸다면 Test Code 되겠.) 만 보고 바로 못된 드라고 단기 보단 로그램 내 따르는 될 것 같다는 각.

  • 드로 느냐 - 맞게 Refactoring 되 바로 Raise 만. 그리 닌듯 다. usageInRange 로 빼내기 부러 만들다고 . 그 덕 로 뜻 기가 다는 부는 동감.

  • Refactoring Motivation - Pattern Refactoring 'Motivation' 부 . , 무 드를 는가다. Parameterize Method 는 'couple of methods that do similar things but vary depending on a few values' . , 는 메드들부 값들 드들는, 그 는 값들 parameter 로 게끔 고, 같 는 부 고, 될 부 는 것. --


라기보다는 다.

다.

바꾸 내부를 변는 것다. " 동" 다. " 동" "는/ 동"로 봅다 -- 가 궁극 고 그 드가 드러내는 "" 궁극기 때문.

그렇다면, 모든 는 것 다. 를 "게" 낸 것고, 나, 늘려다.

런 논를 떠나 는가 다. 리는 리 "리라는 것 다 그르다"를 따 는 것 고, 로그래밍 되기 다.

라는 는 논리린 부 내려고 노력는 것보다, 나 되면 고 그렇 다면 나는 것 "로그래머"게 득 되는 듯 다.

물론, 공부게는 다르겠. 만, 군가 말 " 론" 다. 는 리 " 론"보다 " 론" 다.

ps. 말 모든 /기가 고대로 되는 리 다. 가 Extract a Method 모든 경 를 보 다. 1+2가 2+1과 같 다고 말 다. 로 같다고 말 다 -- 물론 따라 를 구 만, 1+2, 2+1 느 것 고민 .

~cpp 
> { Refactoring(by Martin Fowler) 못된 refactoring }
> { (guest),  }

[snip]

> 
> 
>  (1) 드는 럼 그대로 두나, usageInRange(Integer.MIN_VALUE, 100)로
> 는게 맞다.
> 
>  뿐,  다.
> 
> lastUsage() Integer.MIN_VALUE 나, Integer.MAX_VALUE 라면?
> (  다고   는가?)
> 

로그램 (correctness) 다. UnitTest나 Eiffel 같 DBC 가능 다.

그 다 다. 린/ 로그램 "게 리링" 린/ 로그램다.

-- 김
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:27:52
Processing time 0.0185 sec