본문 바로가기

강의/TDD, Clean Code with Java 12기

[로또] step1 - 문자열 덧셈 계산기 - 피드백(20일 차)

Matcher m = Pattern.compile("//(.)\n(.*)").matcher(o);
Pattern 객체를 반복해서 생성하는 것은 굉장히 비용이 큰 작업입니다.
재사용한다면 어떠한 장점이 있을지 고민해보아요.
충분한 고민 후 이펙티브 자바 아이템 6. 불필요한 객체 생성을 피하라를 참고해주세요!

 

Matcher 부분을 static으로 만들어 한번만 생성하도록 구현하는 것이 더욱 좋을 것 같습니다!


-    private static int sumStringAry(String[] stringAry) {
+    private static int sumStringArray(String[] stringArray) {
개인적으로 축약하여 적는 것은 가독성이 떨어진다고 생각하는데 재영님의 생각은 어떠신가요!

 

저도 축약하여 적으면 가독성이 떨어진다고 생각합니다!
확인 감사합니다!!


    private static void validIntegerValueCheck(int i) {
        if (i < 0) {
            throw new UserCustomException("입력 값은 0보다 커야 합니다.");
        }
    }

     private static boolean validInputCheck(String o) {
        if (o == null || o.isEmpty()) {
            return false;
        }
        return true;
    }
두 메서드 모두 valid-라는 네이밍을 가지고 있는데요
위 메서드는 응답을 void로 처리하여 내부에서 예외처리를 하고, 아래 매서드는 boolean값으로 응답하고 있네요
메서드를 설계할 때 어떠한 규칙으로 설계하시는지 알 수 있을까요!?

 

 

네이밍이라는 것 자체가 굉장히 방대하기 때문에 상황에 따라 규칙이 바뀔 수 있다라고 생각이 드네요.

메서드를 만드는 네이밍에도 신경을 쓰도록 하겠습니다.
boolean 값을 응답하는 경우 is-와 같은 네이밍을 사용하도록 하려고 합니다.
관련 내용에 대해 Clean Code 책을 읽어 보도록 하겠습니다.
네이밍을 통해 메서드 자체가 하는 역할을 잘 나타낼 수 있는가?를 나타내는 것과 일관된 규칙을 가지도록 네이밍을 하였는가? 를 생각하면서 만들도록 하겠습니다.

 

감사합니다.