
인프런 워밍업 클럽 4기 BE 스터디 Day 4 미션
2개월 전
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
추상화(인터페이스)에 의존하자
댓글을 작성해보세요.