inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[워밍업 클럽 4기 백엔드] Day 4 미션

췩힌
0

1. 읽기 좋은 코드로 리팩토링 해봅시다.

😫 Before

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

😄 After

public boolean validateOrder(Order order) {
    if(order.isEmptyItems()) {
        log.info("주문 항목이 없습니다.");
        return false;
    }

    if(order.isInvalidTotalPrice()) {
        log.info("올바르지 않은 총 가격입니다.");
        return false;
    }

    if (order.hasNotCustomerInfo()) {
        log.info("사용자 정보가 없습니다.");
        return false;
    }
    
    return true;
}

불필요한 중첩 분기문 제거 & early return

부정 연산자보단 부정어구 사용

getter를 통한 검증보단 해당 객체에 검증 위임


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

📌Single Responsibility Principle(단일 책임 원칙)

하나의 클래스하나의 책임만 가지도록 설계하자!

 

📌Open-Closed Principle(개방-폐쇄 원칙)

확장에는 열려 있고, 수정에는 닫혀 있어야 한다!

 

📌Liskov Substitution Principle(리스코프 치환 원칙)

자식 클래스는 부모 클래스의 책임을 준수하며, 부모 클래스의 행동을 변경하지 않아야 한다.

 

📌Interface Segregation Principle(인터페이스 분리 원칙)

클라이언트는 자신이 사용하지 않는 인터페이스에 의존하면 안 된다!

 

📌Dependency Inversion Principle(의존성 역전 원칙)

상위 수준의 모듈은 하위 수준의 모듈에의존해서는 안 된다. 둘 모두 추상화에 의존해야 한다!

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

백엔드 워밍업클럽4기 백엔드 Day4미션

답변 0