이펙티브 자바/9장 일반적인 프로그래밍 원칙

아이템 68 일반적으로 통용되는 명명 규칙을 따르라

말랑공룡 2023. 12. 14. 21:21

 

- 자바 플랫폼은 명명 규칙이 잘 정립되어 있으며 특별한 이유가 없는 한 반드시 따라야 한다.

 

철자 규칙


<패키지>

- 소문자 알파벳, (드물게)숫자

- 조직 바깥에서도 사용될 패키지라면 인터넷 도메인 이름 역순 (ex: edu.cmu, com.google..)

- 패키지 이름의 나머지는 해당 패키지를 설명하는 하나 이상의 요소. 일반적으로 8자 이하의 짧은 단어. (ex: util)

 

<클래스, 인터페이스>

- 하나 이상의 단어이며 대문자로 시작한다.

- 널리 통용되는 줄임말을 제외하고는 단어를 줄여 쓰지 않도록 한다.

 

<메서드, 필드>

- 첫글자를 소문자로 쓴다는 점만 빼면 클래스 명명 규칙과 동일하다.

- 단, '상수 필드'는 예외. 상수 필드는 모두 대문자이며 단어 사이는 밑줄로 구분(ex: NEGATIVE_INFINITY)

 

<지역변수>

- 일반 필드 이름과 비슷하지만 약어를 써도 좋다.

 

<타입 매개변수>

- 보통 한 문자로 표현한다.

  • T : 임의의 타입
  • E : 컬렉션 원소의 타입
  • K, V : 맵의 키와 값
  • X : 예외
  • R : 메서드의 반환 타입
  • T, U, V, T1, T1, T3 : 그 외에 임의 타입의 시퀀스

 

문법 규칙


<패키지>

따로 없다.

 

<객체를 생성할 수 있는 클래스(열거 타입 포함)>

- 단수 명사나 명사구(ex: Thread, PriorityQueue)

 

<객체를 생성할 수 없는 클래스>

- 보통 복수형 명사(ex: Collectors, Collections)

 

<인터페이스>

- 클래스와 똑같이 짓거나, able 혹은 ible로 끝나는 형용사로 짓는다. (ex: Runnable, Iterable)

 

<애너테이션>

- 지배적인 규칙 없이 명사, 동사, 전치사, 형용사가 두루 쓰인다.

 

<어떤 동작을 수행하는 메서드>

- 동사나 동사구로 짓는다. (ex: append, drawImage)

 

<boolean 값을 반환하는 메서드>

- is, has로 시작하고 명사나 명사구, 혹은 형용사로 기능하는 아무 단어나 구로 끝나도록 짓는다. (ex: isDigit, isProbablePrime)

 

<인스턴스의 속성을 반환하는 메서드>

- 명사, 명사구, 혹은 get으로 시작하는 동사구로 짓는다. (ex: size, hashCode, getTime)

 

<객체의 타입을 바꿔서, 다른 타입의 또 다른 객체를 반환하는 인스턴스 메서드>

- toType 형태 (ex: toString, toArray)

 

<객체의 내용을 다른 뷰로 보여주는 메서드>

- asType, asList 형태.

 

<객체의 값을 기본 타입으로 반환하는 메서드>

- typeValue 형태 (ex: intValue)

 

<정적 팩터리>

- from, of, valueOf, instance, getIstance, newInstance, getType, newType 등 다양하게 사용한다.

 

<필드>

- 덜 명확하고 덜 중요하다. 왜냐면 직접 노출될 일이 거의 없기 때문이다.

- boolean 타입의 필드는 보통 boolean 접근자 메서드에서 앞 단어를 뺀 형태다. (initialized, composite 등)

- 다른 타입의 필드라면 명사나 명사구를 사용한다. (height, digits, bodyStyle 등)