의도를 분명히 밝혀라
- 단순 알파벳을 이름으로 사용하지 않기
- 숫자 상수도 변수로 선언해서 사용하기
그릇된 정보를 피하라
- 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용하지 않기
- 서로 흡사한 이름 사용하지 않기
- 유사한 개념은 유사한 표기법 사용하기
의미 있게 구분하라
- 불용어 사용하지 않기(variable, info, data, a, an, the...)
- 연속적인 숫자를 붙인 이름 사용하지 않기(n1, n2, n3...)
발음하기 쉬운 이름을 사용하라
검색하기 쉬운 이름을 사용하라
- 이름 길이는 범위 크기에 비례해야 한다
- 숫자 상수도 변수로 선언해서 사용하기
인코딩을 피하라
- 변수 이름에 타입명 사용하지 않기(phoneNumberString)
- 멤버 변수 접두어 사용하지 않기(m, m_...)
- 인터페이크에 접두어 사용하지 않기(I...) -> 차라리 구현 클래스에 접미어 사용(~Imp, Impl...)
자신의 기억력을 자랑하지 마라
클래스 이름
- 명사, 명사구 사용하기
- Manager, Processor, Data, Info와 같은 단어 사용하지 않기
- 동사 사용하지 않기
메서드 이름
한 개념에 한 단어를 사용하라
- 비슷한 여러 표현 사용하지 않기(fetch, retrieve, get...)
말장난을 하지 마라
해법 영역과 문제 영역에서 가져온 이름을 사용하라
- 프로그래밍 용어를 사용할 수 있다면 우선적으로 사용하기
- 적절한 프로그래밍 용어가 없거나 문제 영역 개념과 관련이 깊다면 문제 영역의 이름 사용하기
의미 있는 맥락을 추가하라
- 클래스, 함수, 이름 공간에 넣어 맥락 부여하기
- 불가능할 경우 접두어를 붙여서 맥락 부여하기
불필요한 맥락을 없애라