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

More Related Content

PDF
Java 제어
Hyosang Hong
 
PPTX
Effective c++ 3
현찬 양
 
PPTX
7.읽기 쉽게 흐름제어 만들기
GeniusYG
 
PPTX
Effective c++ chapter 7,8
문익 장
 
PDF
Clean code 3장-함수
Yong-sang Lee
 
PPTX
Clean code(03)
규열 김
 
PDF
리팩토링 10장 p357_p369
Heo Seungwook
 
PDF
리펙토링 11장 p389_p400
Heo Seungwook
 
Java 제어
Hyosang Hong
 
Effective c++ 3
현찬 양
 
7.읽기 쉽게 흐름제어 만들기
GeniusYG
 
Effective c++ chapter 7,8
문익 장
 
Clean code 3장-함수
Yong-sang Lee
 
Clean code(03)
규열 김
 
리팩토링 10장 p357_p369
Heo Seungwook
 
리펙토링 11장 p389_p400
Heo Seungwook
 

Viewers also liked (9)

PPTX
Cruise control net_and_terminal_with_gamedev
Heo Seungwook
 
PPTX
2010 연말행사 온라인스터디
Heo Seungwook
 
PPTX
리펙토링 4장 테스트만들기
Heo Seungwook
 
PPTX
리펙토링 10장 p316_p324
Heo Seungwook
 
PPTX
Pac pattern
Heo Seungwook
 
PPTX
Master slave pattern
Heo Seungwook
 
PPTX
프로그램은 왜 실패하는가
Heo Seungwook
 
PPTX
Client dispatcher server_pattern
Heo Seungwook
 
PPTX
Mvc pattern
Heo Seungwook
 
Cruise control net_and_terminal_with_gamedev
Heo Seungwook
 
2010 연말행사 온라인스터디
Heo Seungwook
 
리펙토링 4장 테스트만들기
Heo Seungwook
 
리펙토링 10장 p316_p324
Heo Seungwook
 
Pac pattern
Heo Seungwook
 
Master slave pattern
Heo Seungwook
 
프로그램은 왜 실패하는가
Heo Seungwook
 
Client dispatcher server_pattern
Heo Seungwook
 
Mvc pattern
Heo Seungwook
 
Ad

리펙토링 6장 p147_p158

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