inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[클린 코드 & 테스트 코드 가이드 로드맵, 미션 Day4] 코드 리팩토링 및 SOLID

lsmunt
0

[미션]

1. 아래 코드와 설명을 보고, [섹션 3. 논리, 사고의 흐름]에서 이야기하는 내용을 중심으로 읽기 좋은 코드로 리팩토링해 봅시다.

#TO-BE

public boolean validate(Order order) {
    if (Objects.isNull(order)){
        return false;
    } 

    if (order.isItemsEmpty()) {
        log.info("주문 항목이 없습니다.");
        return false;
    } 
 
    if (order.notValidateTotalPrice()) {
        log.info("올바르지 않은 총 가격입니다.");
        return false;
    }
 
    if (order.notHasCustomerInfo()) {
        log.info("사용자 정보가 없습니다.");
        return false;
    } 
 
    return true;
}

 

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


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

 

백엔드

답변 0