inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[인프런워밍업클럽] Day4 미션 - 읽기좋은 코드

손예지
0

https://inf.run/yTUP4

1. 읽기 좋은 코드로 리팩토링 하기

[AS-IS]

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;
}

[TO-BE]

public boolean validateOrder(Order order) {
    try {
        checkOrderItemsExist(order);
        checkCustomerInfoExists(order);
        checkTotalPriceAboveZero(order);
        return true;
    } catch (IllegalArgumentException e) {
        log.info(e.getMessage());
        return false;
    }
}

private static void checkOrderItemsExist(Order order) {
    if (order.getItems().size() == 0) {
        throw new IllegalArgumentException("주문 항목이 없습니다.");
    }
}

private static void checkCustomerInfoExists(Order order) {
    if (!order.hasCustomerInfo()) {
        throw new IllegalArgumentException("사용자 정보가 없습니다.");
    }
}

private static void checkTotalPriceAboveZero(Order order) {
    if (order.getTotalPrice() <= 0) {
        throw new IllegalArgumentException("올바르지 않은 총 가격입니다.");
    }
}

 

2. SOLID에 대하여 자기만의 언어로 정리하기

백엔드 읽기좋은코드 인프런워밍업클럽

답변 0