[리팩토링] ENUM 에 한글과 value 등등..

DEPARTURE("DEPARTURE", "배송지시"),
DELIVERING("DELIVERING", "배송중"),
FINAL_DELIVERY("FINAL_DELIVERY", "배송완료"),
  • enum 에 위에 해당하는 한글 값이 들어가는 것은 왠만하면 권장되지 않는 행동이라고한다.
  • 또한 상수값과 value 인 DEPARTURE 는 문자가 동일하다…
    • 이런 이유때문에 삭제가 권장되긴하는데
    • 나는 enum 에 별도의 value 로 검색할 수 있는 기능이 별도 존재해야한다고 생각하기도하며
    • 만약 상수값이 변경된다면 데이터베이스에 저장되는 의미까지 변질될 가능성이 있다고 생각되기에, 유지보수의 면에서 별도 value 표기는 필수적이라고 생각된다.

public void removeOrderProducts(long orderId) {
    boolean result = orderMapper.deleteSoftlyOrderProducts(orderId);
    if (!result) {
        throw new DatabaseOperationException(ErrorCode.ORDER_RELATION_DELETE_FAIL);
    }
}
public OrderStatus findOrderStatusForUpdate(long orderId) {
    OrderStatus orderStatus = orderMapper.selectOrderStatusForUpdate(orderId);
    if (orderStatus == null) {
        throw new DatabaseOperationException(ErrorCode.ORDER_STATUS_NOT_CANCELABLE);
    }
    return orderStatus;
}
  • if(거짓조건) 보다 if(참조건)으로 코드를 읽는 사람들에게 하나의 관통된 조건으로 코드를 읽을 수 있도록 이점을 주어야 한다.
  • 또한 위와 관련된 로직을 전부 참 조건으로 수정하면서 테스트코드에서 잘된 표기된 부분을 찾아 낼 수 있었다.


Uploaded by N2T