블로그

정기석

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

강의 수강개발이란 팀단위로 진행하는 프로젝트이기에 다른 팀원 미래의 나 미래의 유지보수를 위해 가독성있는 코드를 작성해야 한다는 것코드를 작성하는 시간보다 코드를 읽는 시간이 많다는 것미션 // 기존 코드 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 boolean validateOrder(Order order){ if(order.isEmpty()){ log.info("주문 항목이 없습니다."); return false; } if(order.hasNotCustomerInfo()){ log.info("사용자 정보가 없습니다."); return false; } if(order.isNotPriceValid()){ log.info("올바르지 않은 총 가격입니다."); return false; } return true; }회고발자국을 작성하면서 다시한번 미션 코드를 보니 validateOrder메소드의 위치가 바뀌어야 한다는 생각이 든다.단일책임원칙을 생각했을때 주문에 대한 책임은 Order가 가지고 있는데 그러니 주문을 검증하는 코드역시 Order에 있어야 하는 것이 아닐까?해당 메서드를 Order로 옮기거나 생성자에 검증을 넣거나 했어야 했다는 생각이 든다

백엔드워밍업클럽벡엔드-code발자국

채널톡 아이콘