반응형
- 추출하려는 표현식에 부작용은 없는지 확인한다
- 불변 변수를 하나 선언하고 이름을 붙일 표현식의 복제본을 대입한다.
- 원본 표현식을 새로 만든 변수로 교체한다.
- 테스트한다.
- 표현식을 여러 곳에서 사용한다면 각각을 새로 만든 변수로 교체한다. 하나 교체할 때마다 테스트한다.
예시
Before:
function price(order) {
return (
order.quantity * order.itemPrice -
Math.max(0, order.quantity - 500) * order.itemPrice * 0.05 +
Math.min(order.quantity * order.itemPrice * 0.1, 100)
);
}
After:
function price(order) {
const basePrice = order.quantity * order.itemPrice;
const quantityDiscount =
Math.max(0, order.quantity - 500) * order.itemPrice * 0.05;
const shipping = Math.min(basePrice * 0.1, 100);
return basePrice - quantityDiscount + shipping;
}
출처 : 리팩터링 2판 – Chapter6
반응형
'Programming' 카테고리의 다른 글
[리팩터링 카탈로그] 1-5. 함수 선언 바꾸기 (0) | 2021.12.05 |
---|---|
[리팩터링 카탈로그] 1-4. 변수 인라인하기 (0) | 2021.12.05 |
[리팩터링 카탈로그] 1-2. 함수 인라인하기 (0) | 2021.12.05 |
[리팩터링 카탈로그] 1-1. 함수 추출하기 (0) | 2021.12.05 |