리펙토링 6장 p147_p158

965 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
965
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

리펙토링 6장 p147_p158

  1. 1. Refactoring 리팩토링<br />6장 <br /> Replace Temp with Query<br /> Introduce Explaining Variable<br /> Split Temporary Variable<br />아꿈사http://cafe.naver.com/architect1<br />TTF http://www.npteam.net<br />
  2. 2. Replace Temp with Query<br />■ 임시 변수를 질의로 대체하기<br />
  3. 3. Replace Temp with Query<br />■ 임시 변수의 문제점<br /> - 임시 변수는 임시로 사용되고,<br />특정 부분에서만 의미를 가지므로 문제가 된다.<br />■ 임시 변수를 질의 메소드로 바꾸면?<br /> - 임시 변수는 메소드 내에서만 사용된다.<br /> 질의 메소드는 클래스 어디서든 접근 가능하다.<br /> - 임시 변수가 사용되면 메소드가 길어지는<br /> 경향이 있다.<br /> 질의 메소드를 호출하기 때문에,<br />메소드 길이가 짧아진다.<br />
  4. 4. Replace Temp with Query<br />■ 질의 메소드로 바꾸는 절차<br /> - 임시 변수에 값이 한번만 대입되는지 확인한다.<br /> 값이 여러 번 대입되면,<br />임시 변수를 나누어서 작은 단위로 처리한다.<br /> - 대입문의 우변을 메소드로 추출한다.<br /> 추출된 메소드를private으로 선언한다.<br />나중에 public으로 바꿀수도 있다.<br /> - Inline Temp(140)를 적용한다.<br />  대부분 inline이 가능한 변수들이다.<br />
  5. 5. Replace Temp with Query<br />■ 예제<br /> - 2개의 임시 변수를 제거하고 싶다.<br />basePrice, discountFactor<br />
  6. 6. Replace Temp with Query<br />■ 예제<br /> - final로 선언하여 컴파일 테스트를 한다.<br />
  7. 7. Replace Temp with Query<br />■ 예제<br /> - 대입문의 우변을 메소드로 뽑아낸다.<br />
  8. 8. Replace Temp with Query<br />■ 예제<br /> - 임시변수 참조하는 곳을 바꾼다.<br /> - 임시변수의 선언도 삭제한다.<br />
  9. 9. Replace Temp with Query<br />■ 예제<br /> - discountFactor에 대해서도 동일한 작업을 한다.<br />
  10. 10. Introduce Explaining Variable<br />■ 설명하는 이름으로 된 임시변수<br />
  11. 11. Introduce Explaining Variable<br />■ 설명하는 이름으로 된 임시변수<br /> - 수식이 복잡해져 알기 여려운 상황에서<br />수식의 결과를 설명하는 잘 지어진 이름의<br />임시 변수로 설명할 수 있다.<br /> - 그러나 임시변수는 좋지 않다.<br /> Extract Method를 추천한다.<br /> - 복잡한 로직일 경우<br /> 1. 복잡한 조건을 임시변수로 리펙토링<br /> (Introduce Explaining Variable)<br /> 2. 임시변수를 질의로 대체하기<br /> (Replace Temp with Query)<br />
  12. 12. Split Temporary Variable<br />■ 각각의 임시변수 분리하기<br />
  13. 13. Split Temporary Variable<br />■ 각각의 임시변수 분리하기<br /> - 임시변수는 긴 코드의 결과값을 참조하기 위해<br />보관하는 용도로 사용된다.<br /> - 이런 종류의 변수는 값이 <br /> “한번만” 설정되어야 한다.<br /> - 각각의 용도에 맞게 변수를 따로 지정해야 한다.<br /> 하나의 임시변수를 두 가지 용도로 사용하면,<br />코드를 보는 사람이 매우 혼란스러울 수 있다.<br />
  14. 14. 감사합니다.<br />

×