6-10. 여러 함수를 변환 함수로 묶기
적용 시점
같은 도출 로직이 반복되는 경우
원본 데이터가 코드 안에서 갱신되지 않는 경우
절차
변환할 레코드를 입력받아서 값을 그대로 반환하는 변환 함수를 만든다.
묶을 함수 중 함수 하나를 골라서 본문 코드를 변환 함수로 옮기고, 처리 결과를 레코드에 새 필드로 기록한다. 그런 다음 클라이언트 코드가 이 필드를 사용하도록 수정한다.
테스트한다.
나머지 관련 함수도 위 과정에 따라 처리한다.
예시
❌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