🔥딱 8일간! 인프런x토스x허먼밀러 역대급 혜택

인프런 워밍업 클럽 4기 BE 스터디 Day 4 미션

인프런 워밍업 클럽 4기 BE 스터디 Day 4 미션

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

 

🎯 Day 4 미션 ①

[섹션 3. 논리, 사고의 흐름]에서 이야기하는 내용을 중심으로 읽기 좋은 코드로 리팩토링 하기


  • 추상화 하기

  • Early return 적용

  • 부정어구를 사용해야 하는지 고민하고, 사용해야 한다면 부정어구로 메서드명 지정

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

    if (hasTotalPrice(order)) {
        if (order.hasCustomerInfo()) {
            return true;
        }
        
        return false;
    }

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

    return true;
}

private boolean hasNoTotalPrice(Order order) {
    return order.getTotalPrice() <= 0;
}

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

private boolean hasNoOrderItem(Order order) {
    return order.getItems().size() == 0;
}

 

🎯 Day 4 미션 ②

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


SRP

  • 책임을 분리하자

     

OCP

  • 추상화와 다형성을 활용해 기존 코드 변경 없이, 기능을 확장할 수 있어야 한다

     

LSP

  • 자식 클래스는 부모 클래스의 행위를 변경하지 않는다

  • 부모 클래스의 인스턴스를 자식 클래스의 인스턴스로 치환할 수 있어야 한다

     

ISP

  • 기능 단위로 인터페이스를 나누자

     

DIP

  • 추상화(인터페이스)에 의존하자

댓글을 작성해보세요.

채널톡 아이콘