N1: 서술적인 이름을 사용하라
•
이름을 성급하게 짓지 마라.
•
서술적인 이름을 신중하게 골라라.
•
대충 정하기에 이름은 너무도 중요한 요소다.
N2: 적절한 추상화 수준에서 이름을 선택하라
•
구현을 드러내는 이름은 피하라
•
작업 대상 클래스나 함수가 위치하는 추상화 수준을 반영하는 이름을 선택하라.
N3: 가능하다면 표준 명명법을 사용하라
•
기존의 규칙이나 일관성을 따르는 이름은 이해하기 쉽다.
•
유비쿼터스 언어, DSL를 적극 사용하자.
N4: 명확한 이름
•
함수나 변수의 목적을 명확히 밝히는 이름을 선택한다.
N5: 긴 범위는 긴 이름을 사용하라
•
이름의 길이는 작업하는 범위의 길이에 비례해야 한다.
•
다음과 같이 짧은 코드라면 짧은 이름을 사용해도 괜찮다.
private void rollMany(int n, int pins) {
for (int i = 0; i < n; i++) {
g.roll(pins);
}
Java
복사
N6: 인코딩을 피하라
•
이름에 유형 정보나 범위 정보를 넣어서는 안 된다.
•
m_, f_와 같은 접두어가 불필요하다.
N7: 이름으로 부수 효과를 설명하라
•
함수, 변수, 클래스가 하는 일을 모두 기술하는 이름을 사용하라.
•
이름에 부수 효과를 숨기지 마라.
•
여러 작업을 수행하는 함수에 동사 하나만 사용하면 곤란하다.
public ObjectOutPutStream getOos() throws IOException {
if (m_oos == null) {
m_oos = new ObjectOutputStream(m_socket.getOutputStream());
}
return m_oos;
}
Java
복사
•
없으면 생성하고, 있으면 가져오는 함수다. 그러므로 createOrReturnOos가 더 적합하다.