클린코드_원칙_이해
필기 가자
- 클린 코드
- 기독성
- 유지보수성
- 직관성
SRP 적용 전: // 하나의 메서드에 여러 역할 포함 public void processOrder(Long orderId) { // 상태 검증 if (orderId == null) { throw new IllegalArgumentException(“Invalid order ID”); }
// 총액 계산 double total = calculateTotal(orderId);
// 데이터 저장 saveOrder(orderId, total); }
적용 후: // 단일 책임 원칙을 적용하여 역할 분리 public void processOrder(Long orderId) { validate(orderId); // 상태 검증 double total = calculateTotal(orderId); // 총액 계산 orderRepository.saveOrder(orderId, total); // 데이터 저장 }
// 상태 검증 클래스 private void validate(Long orderId) { if (orderId == null) { throw new IllegalArgumentException(“Invalid order ID”); } }
// 총액 계산 클래스 private BigDecimal calculateTotal(Long orderId) { return 100.0; // 예제용 값 }
- 중복 코드 최소화 적용 전: if (order.getStatus().equals(OrderStatus.PENDING)) { // 주문 처리 } if (order.getStatus().equals(OrderStatus.COMPLETED)) { // 완료 처리 }
적용 후: public void orderProcess(Order order) { if (isOrderStatus(order, OrderStatus.PENDING)) { // 주문 처리 } if (isOrderStatus(order, OrderStatus.COMPLETED))) { // 완료 처리 } }
private boolean isOrderStatus(Order order, String status) { return order.getStatus().equals(status); }
- 부분환불 실습
- 의문 : 환불시 재고 증가가 없음. 왜지?
- 나도 이부분은 이제 모르겠다.
- 의문 : 환불시 재고 증가가 없음. 왜지?
5.6 개선 포인트 종합
- 의미 전달: 변수와 메서드 이름은 단순한 데이터가 아니라 역할과 의도를 전달해야 함.
- 일관성 유지: 동일한 역할과 데이터를 처리하는 이름은 프로젝트 전반에서 일관성을 유지.
- 약어 지양: 코드 리뷰어와 팀원이 쉽게 이해할 수 있도록 약어를 피하고 명확한 표현을 사용.
네이밍은 코드 가독성과 유지보수성을 결정짓는 핵심 요소로, 실습을 통해 이를 체득하는 것이 중요합니다.