[Java] Google Java Style Guide - 5. Naming
이 글은 구글 자바 스타일 가이드의 네이밍 파트를 번역・정리한 글입니다.
목차
모든 식별자에 대해
ASCII 문자 또는 숫자로만 작성되어야 하며, 정규식 [\w+]에 매치되는 모든 이름이 가능합니다.
\w 는 [A-z0-9_]와 동일.
특별한 접두사나 접미사를 붙일 필요가 없으면 다음과 같이 이름 짓지 않습니다.
- name_
- mName
- s_name
- kName
패키지 이름
패키지 이름은 소문자와 숫자만 사용합니다(_ 없음). 연속되는 단어는 간단히 연결합니다.
- com.example.deepSpace ❌
- com.example.deep_space ❌
- com.example.deepspace ✅
클래스 이름
클래스 이름은 대문자로 작성됩니다.
클래스 이름은 일반적으로 명사 또는 명사구입니다.
- Character
- ImmutableList
인터페이스 이름도 명사 또는 명사구(예: List)일 수 있지만, 형용사 또는 형용사구 대신 형용사일 수도 있습니다.
- Readable
테스트 클래스는 이름이 Test로 끝나는 이름을 갖습니다
- HashIntegrationTest
하나의 클래스에 대한 테스트인 경우, 해당 클래스의 이름에 Test를 더하여 이름을 짓습니다.
- HashImplTest
메소드 이름
메서드 이름은 소문자로 작성됩니다.
메서드 이름은 일반적으로 동사 또는 동사 구문입니다.
- sendMessage
- stop.
JUnit 테스트 메서드 작성 시 논리적 구성 요소를 구분하기 위해 밑줄을 사용할 수도 있습니다.
- transferMoney_deductsFromSource)
상수 이름
상수는 내용이 거의 불변이고 메서드에 감지할 수 있는 부작용이 없는 정적 최종 필드입니다.
상수 이름은 모두 대문자로 된 UPPER_SNAKE_CASE를 사용하며, 각 단어는 밑줄 하나로 다음 단어와 구분됩니다. 일반적으로 명사 또는 명사 구문으로 작성합니다.
// Constants
static final int NUMBER = 5;
static final ImmutableList<String> NAMES = ImmutableList.of("Ed", "Ann");
static final Map<String, Integer> AGES = ImmutableMap.of("Ed", 35, "Ann", 32);
static final Joiner COMMA_JOINER = Joiner.on(','); // because Joiner is immutable
static final SomeMutableType[] EMPTY_ARRAY = {};
// Not constants 요소의 변경 가능 여지가 있기 때문에 상수라고 하지 않습니다.
static final Set<String> mutableCollection = new HashSet<String>();
static final ImmutableSet<SomeMutableType> mutableElements = ImmutableSet.of(mutable);
static final ImmutableMap<String, SomeMutableType> mutableValues =
ImmutableMap.of("Ed", mutableInstance, "Ann", mutableInstance2);
static final Logger logger = Logger.getLogger(MyClass.getName());
static final String[] nonEmptyArray = {"these", "can", "change"};
상수가 아닌 필드 이름
상수가 아닌 필드 이름(정적 또는 기타)은 소문자로 작성됩니다.
이러한 이름은 일반적으로 명사 또는 명사 구문입니다.
- computedValues
- index
파라미터 이름
매개변수 이름은 소문자로 작성됩니다.
public 메서드라면 한 문자로 된 매개변수 이름은 피해야 합니다.
로컬 변수 이름
로컬 변수 이름은 소문자로 작성됩니다.
최종적이고 불변인 경우에도 로컬 변수는 상수로 간주되지 않으므로 상수 스타일로 작성해선 안됩니다.
Type 변수 이름
각 유형 변수의 이름은 두 가지 스타일 중 하나로 지정됩니다:
대문자 하나에 선택적으로 숫자 하나가 뒤따릅니다.
(예: E, T, X, T2)
- E
- T
- X
- T2
클래스에 사용되는 형식의 이름 뒤에 대문자 T가 오는 형식
- RequestT
- FooBarT