[인프런 워밍업 클럽] 스터디 3기_백엔드 클린 코드, 테스트 코드 1주차 발자국

회고록

 

섹션 4. 객체 지향 패러다임을 들으며 미션을 통해 아직 많이 미숙하지만 SOLID에 대해 좀 더 가까워지는 계기가 되었다.

 

public class Mission {
    public boolean validateOrder(Order order) {
        if(order.getItems().size() == 0) {
            log.info("주문 항목이 없습니다.");
            return false;
        }else {
            if(order.getTotalPrice() > 0) {
                if(!order.hasCustomerInfo()) {
                    log.info("사용자 정보가 없습니다.");
                    return false;
                }else {
                    return true;
                }
            }else if(!(order.getTotalPrice() > 0)) {
                log.info("올바르지 않은 총 가격입니다.");
                return false;
            }
        }
        return true;
    }
}
public class MyExplanation {
    public boolean validateOrder(Order order) {
        if(order.getItems().size() == 0) {
            log.info("주문 항목이 없습니다.");
            return false;
        }else {
            return validateOrderDetails(order);
        }
        return true;
    }

    private static boolean validateOrderDetails(Order order) {
        if(hasNonZeroTotalPrice(order)) {
            return isCustomerInfoPresent (order);
        }
        log.info("올바르지 않은 총 가격입니다.");
        return false;
    }

    private static boolean isCustomerInfoPresent (Order order) {
        if(order.hasCustomerInfo()) {
            return true;
        }
        log.info("사용자 정보가 없습니다.");
        return false;
    }

    private static boolean hasNonZeroTotalPrice(Order order) {
        return order.getTotalPrice() > 0;
    }
}

이런식으로 풀어봤다. 현재는 여기까지가 최대이지만 나중에 강의를 다 듣고 한번 더 리펙토링 해보며 이전 코드와 비교해보는 시간을 가져볼것이다.

[인프런 워밍업 클럽 스터디 3기_백엔드 클린 코드, 테스트 코드]

 

댓글을 작성해보세요.


채널톡 아이콘