자바의 작명 관습은 두 가지 범주로 나눌 수 있다. 철자에 관한 것이 하나고 문법에 관한 것이 하나다.
철자에 관계된 작명 관습
패기지 이름은 마침표를 구분점으로 사용하는 계층적 이름이어야 한다. 패키지 이름을 구성하는 각각의 컴포넌트는 알파벳 소문자로 구성하고, 숫자는 거의 사용하지 않는다. 해당 조직 바깥에서 이용될 패키지 이름은 해당 조직의 인터넷 도메인 이름으로 시작해야 하는데, edu.cmu , com.sun 처럼 최상위 도메인 이름이 먼저 온다. 예외적으로 java와 javax는 표준라이브러리와 그 옵션 패키지명이므로 둘은 사용해서는 안된다.
enum, 어노테이션 자료형, 클래스나 인터페이스 이름은 하나 이상의 단어로 구성된다. 각 단어의 첫 글자는 대문자로 약어 사용은 피해야 한다.
메서드나 필드의 이름은 클래스나 인터페이스 이름과 동일한 철자 규칙을 따르며, 다만 첫 글자는 소문자로 한다. remove나 ensureCapacity 등이 그 예다. 예외로는 상수 필드같은 경우는 하나 이상의 대문자 단어로 구성되며, 단어 사이에는 밑줄 기호( _ )를 둔다.
지역 변수 이름은 멤버 이름과 같은 철자 규칙을 따르며, 약어가 허용 된다.
자료형 인자의 이름은 보통 하나의 대문자다. 가장 널리 쓰이는 것은 다섯가지로, 임의 자료형인 경우엔 T, 컬렉션의 요소 자료형인 경우에는 E, 맵의 키와 값에 대해서는 각각 K와V, 예외인 경우에는 X를 사용한다.
문법적 작명 관습
가변적이며 철자 관습에 비해 논쟁의 여지가 많다. 패키지의 경우에는 문법적 관습이라 할 만한 것이 없다.
enum자료형을 비롯한 클래스, 인터페이스에는 단수형의 명사나 명사구가 이름으로 붙는다. 인터페이스 같은 경우에는 able이나 ible같은 형용사 어미가 붙기도 한다.
어떤 동작을 수행하는 메서드는 일반적으로 동사나 동사구를 포함한 이름으로 갖는다. boolean값을 반환하는 메서드는 is, 드믈게는 has 등으로 시작한다. 객속성을 반환하는 메서드는 보통 명사나 명사구, 또는 get으로 시작하는 동사구를 이름으로 한다. size, hashCode, getTime 등이 그런 이름이다. 객체의 자료형을 변환하는 메서드, 다른 자료형의 독립적 객체를 반환하는 메서드에는 보통 toType형태의 이름을 붙인다. toString,toAArray 같은 이름이 그 예다. 인자로 전달받은 객체와 다른 자료형의 뷰 객체를 반환하는 메서드에는 asType 형태의 이름을 붙인다. asList 같은 이름이 그 예이다. 호출 대상 객체와 동일한 기본 자료형 값을 반환하는 메서드에는 typeValue와 같은 형태의 이름을 붙인다. intVaule가 그 예다. 정적 팩터리 메서드에는 valueOf, of, getInstance와 같은 이름을 붙인다.
요약
표준적 작명 관습을 내면화시키고, 사용해야 한다
'개발서적 > 이펙티브자바' 카테고리의 다른 글
[예외]규칙58. 복구 가능 상태에는 점검지정 예외를 사용하고, 프로그래밍 오류에는 실행시점 예외를 이용하라 (0) | 2017.05.06 |
---|---|
[예외]규칙57. 예외는 예외적 상황에만 사용하라 (0) | 2017.05.06 |
[일반적인 프로그래밍 원칙들]규칙55. 신중하게 최적화하라 (0) | 2017.05.06 |
[일반적인 프로그래밍 원칙들]규칙54. 네이티브 메서드는 신중하게 사용하라 (0) | 2017.05.06 |
[일반적인 프로그래밍 원칙들]규칙53.리플렉션 대신 인터페이스를 이용하라 (0) | 2017.05.06 |