6-10. 여러 함수를 변환 함수로 묶기

적용 시점

  • 같은 도출 로직이 반복되는 경우

  • 원본 데이터가 코드 안에서 갱신되지 않는 경우

절차

  1. 변환할 레코드를 입력받아서 값을 그대로 반환하는 변환 함수를 만든다.

  2. 묶을 함수 중 함수 하나를 골라서 본문 코드를 변환 함수로 옮기고, 처리 결과를 레코드에 새 필드로 기록한다. 그런 다음 클라이언트 코드가 이 필드를 사용하도록 수정한다.

  3. 테스트한다.

  4. 나머지 관련 함수도 위 과정에 따라 처리한다.

예시

❌Before

const countProduct = (productName: string) => { // 비즈니스 로직 }
const getDiscountProduct = (productName: string) => { // 비즈니스 로직 }
const getProductInfo = (productName: string) => { // 비즈니스 로직 }

⭕After

const getProductCharge = (original) => {
	const cloneObj = cloneDeep(original) // lodash
	result.discount = getDiscountProduct(cloneObj.productName) 
	result.count = countProduct(cloneObj.productName)
	result.productInfo = getProductInfo(cloneObj.productName);
	return cloneObj;
}

Last updated