- 의도를 분명히 밝혀라
이름을 명확하게 하고, 클래스를 만드는 등 코드를 구체적으로 작성하여 의도를 분명히 밝힌다면 가독성이 뛰어나진다.
- 그릇된 정보를 피하라
약어를 피하라
여러 계정을 그룹으로 묶을 때, 실제 List가 아니라면 accountList가 아닌 accountGroup이라 명명하라
서로 흡사한 이름을 사용하지 않도록 주의하라
의미가 없는 명명을 하지 말라 예를 들면 class를 이미 사용했다고 klass를 사용한다
발음하기 쉬운 이름을 사용하라 예를 들어 함께 코드를 살펴볼 때 서로 지적인 대화가 가능해진다.
- 검색하기 쉬운 이름을 사용하라
변수나 상수를 활용한다면 코드 검색이 용이하다. 예를 들어 그냥 5를 사용하기 보다도 WORK_DAYS_PER_WEEK이라는 상수를 만든다면 찾기 쉬울 것을 상상할 수 있다.
- 인코딩을 피하라
멤버 변수 접두어를 피하라
인터페이스 클래스와 구현 클래스 - 구현 클래스 접미어로 Impl을 붙이는 것이 낫다
- 자신의 기억력을 자랑하지 마라
똑똑한 프로그래머와 전문가의 차이는 전문가 프로그래머는 명료함이 최고라는 사실을 이해한다. 그래서 남들이 이해하는 코드를 내놓는다.
- 클래스 이름
클래스 이름과 객체 이름은 명사나 명사구가 적합하다. 동사는 사용하지 않는다.
- 메서드 이름
동사나 동사구가 적합하다. postPayment,deletePage, sava 등
접근자, 변경자, 조건자는 javabean 표준에 따라 값 앞에 get,set,is를 붙인다.
생성자를 중복정의 할 때는 정적 팩토리 메서드를 사용한다. 메서드는 인수를 설명하는 이름을 사용한다.
- 기발한 이름은 피하라
이름이 너무 기발하면 저자와 유머 감각이 비슷한 사람만, 그리고 농담을 기억하는 동안만, 이름을 기억한다.
- 한 개념에 한 단어를 사용하라
추상적인 개념 하나에 단어 하나를 선택해 이를 고수한다. 예) controller -> MessageController, EmailController
- 말장난을 하지 마라
한 단어를 두 가지 목적으로 사용하지 마라. 예) add라는 한 단어를 두 가지 이상의 목적으로 사용하는 경우
- 해법 영역에서 가져온 이름을 사용하라
기술 개념에는 기술 이름이 가장 적합한 선택이다.
- 문제 영역에서 가져온 이름을 사용하라
적절한 '프로그래머 용어'가 없다면 그 문제와 관련된 이름짓기
- 의미 있는 맥락을 추가하라
스스로 의미가 분명한 이름이 없지 않다. 마지막 수단으로 접두어를 붙인다. 예를 들어 주소와 관련된 도로명, 거리, 도시, 우편번호 등은 앞에 'addr'라는 접두어를 붙인다면 서로 연관된다는 것을 알 수 있다.
- 불필요한 맥락을 없애라
고급 휘발유 충전소(Gas Station Deluxe)라는 애플리케이션을 짠다고 가정하자. 모든 클래스 이름을 GSD로 시작하겠다는 생각은 바람직하지 못하다. 또한, accountAddress와 customerAddresssms Address 클래스 인스턴스로는 좋은 이름이나 클래스 이름으로는 적합하지 못하다. Address는 클래스 이름으로 적합하다.