- 자바 플랫폼은 명명 규칙이 잘 정립되어 있으며 특별한 이유가 없는 한 반드시 따라야 한다.
철자 규칙
<패키지>
- 소문자 알파벳, (드물게)숫자
- 조직 바깥에서도 사용될 패키지라면 인터넷 도메인 이름 역순 (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 등)
'이펙티브 자바 > 9장 일반적인 프로그래밍 원칙' 카테고리의 다른 글
아이템 67 최적화는 신중히 하라 (0) | 2023.12.14 |
---|---|
아이템 66 네이티브 메서드는 신중히 사용하라 (0) | 2023.12.14 |
아이템 65 리플렉션보다는 인터페이스를 사용하라 (0) | 2023.12.14 |
아이템 64 객체는 인터페이스를 사용해 참조하라 (0) | 2023.12.14 |
아이템 63 문자열 연결은 느리니 주의하라 (0) | 2023.12.13 |