inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

워밍업 클럽 3기 BE 클린코드&테스트 - 1주차 발자국

김지원
0

강의 요약

추상

논리, 사고의 흐름

객체 지향 패러다임

객체 지향 적용하기


Misson

2일차 미션 - 추상과 구체의 예시

[추상] 손을 씻는다

[구체]
 1. 수도꼭지를 틀고 적당한 온도의 물을 준비한다.
 2. 적당량의 비누를 덜어 손에 묻힌 후, 양손의 손바닥을 맞대고 문지른다.
 3. 물로 손에 묻은 비누 거품을 헹궈 낸다.
 4. 손에 묻은 물기를 마른 수건으로 닦는다.

4일차 미션 - "논리, 사고의 흐름"을 고려한 리팩토링

기존코드

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 void validateOrder(Order order) {
    if (order.hasNoItems()) {
        throw new OrderException("주문 항목이 없습니다.");
    }

    if (order.isInvalidTotalPrice()) {
        throw new OrderException("올바르지 않은 총 가격입니다.");
    }

    if (order.hasNotCustomerInfo()) {
        throw new OrderException("사용자 정보가 없습니다.");
    }
}

회고

칭찬할 점

아쉬운점


아래의 강의를 공부하고 정리하였습니다.

[Readable Code: 읽기 좋은 코드를 작성하는 사고법]

백엔드

답변 0