inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

mieum
0

강의 수강

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

 

학습 내용 요약

섹션2. 추상

섹션3. 논리, 사고의 흐름

섹션4. 객체 지향 패러다임

섹션5. 객체 지향 적용하기

 

 

회고

평소에 코드를 짤 때 좋은 코드 작성에 대해서 깊게 생각하지 않았다. 일단 코드가 제기능을 하는지가 가장 큰 관심사였고, 개인 프로젝트를 주로 해왔기 때문에 내가 이해할 수 있으면 가독성에 대해 크게 신경쓰지 않았기 때문이다. 그래서 읽는 사람보다는 코드를 작성하는 나의 입장에서 편한 방향으로 코드를 작성해왔다.

강의를 왜 좋은 코드를 작성해야 하는지 명확하게 이해하고, 지금껏 생각하지 못한 관점을 배울 수 있었다. 또한 강사님을 따라 코드를 리팩토링하며 앞으로 코드를 짤 때 배운 내용을 적용하여 읽는 이가 이해하기 쉬운 코드를 짤 수 있도록 노력해야 겠다는 다짐을 하게 되었다.

 

미션

코드 리팩토링

리팩토링 전

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 static final String EMPTY_ORDER_MESSAGE = "주문 항목이 없습니다.";
 public static final String INVALID_TOTAL_PRICE_MESSAGE = "올바르지 않은 총 가격입니다.";
 public static final String NO_USER_INFO_MESSAGE = "사용자 정보가 없습니다.";

 public boolean validateOrder(Order order) {
     if (order.hasNoItem()) {
         log.info(EMPTY_ORDER_MESSAGE);
         return false;
     }

     if (order.hasInvalidTotalPrice()) {
         log.info(INVALID_TOTAL_PRICE_MESSAGE);
         return false;
     }

     if (order.hasNoCustomerInfo()) {
         log.info(NO_USER_INFO_MESSAGE);
         return false;
     }

     return true;
 }

미션 해결 과정

코드를 살펴보며 강의에서 배운 내용을 하나씩 적용해보았다.

회고

백엔드

답변 0