의도가 분명히 밝혀라
int d; // 경과시간 (단위 : 날짜)- 이름 d에는 아무 의미도 드러나지 않는다. 
int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;- 경과 시간이나 날짜라는 느낌을 표현하는 이름이 필요하다 
그릇된 정보를 피하라
- 오해를 불러 일으키는 코드는 피하자 
- 여러 계정을 그룹으로 묶을 때, 실제 List가 아니라면, accountList라는 명명을 하지 말자. - accountGroup, bunchOfAccounts, Accounts 등이 적절하다. 
 
- 서로 비슷한 두 이름을 사용하는 것도 좋지 않다. - XYZControllerForEfficientHandlingOfString 과 XYZControllerForEfficientStorageOfString은 차이를 알아채기 어렵다. 
 
의미 있게 구분하라
- 연속된 숫자를 덧붙이는 방식은 적절치 못하다. 
//Bad Case
public static void copyChar(char a1[], char a2[])
{
   //Do Something
}
//Good Case
public static void copyChar(char source[], char destination[])
{
    //Do Something
}- Product라는 클래스가 있다면, ProductInfo 나 ProductData 라는 클래스는 무슨 역할을 하는지 불분명하다. 
- Name과 NameString, Customer와 CustomerObject 역시 마찬가지다. 
- getActiveAccount(), getActiveAccounts(), getActiveAccountInfo() 또한 차이를 알 수 없다. 
발음하기 쉬운 이름을 사용하라
- genymdhms (generate date, year, month, day, hour, minute, second)라는 이름은 발음하기 너무 어렵다. 
- generationTimestamp가 적절하다. 
검색하기 쉬운 이름을 사용하라
- 문자 하나를 사용하는 이름과 상수는 텍스트 코드에서 쉽게 눈에 띄지 않는다. 
- 5대신 WORK_DAYS_PER_WEEK을 사용하자. 
인코딩을 피하라
- 헝가리안 표기법은 예전에 컴파일러가 타입을 점검하지 않을 때 쓰던 방식. 
- 멤버 변수에 m_ 접두어를 붙일 필요도 없다. 
클래스 이름
- 클래스와 객체 이름은 명사/명사구가 적합하다. 
- Customer, WikiPage, AddressParser 등이 좋은 예이다. 
- Manager, Processor, Data, Info 등과 같은 단어는 피하고 동사는 사용하지 말자. 
메서드 이름
- 동사나 동사구가 적합하다. 
- PostPayment, DeletePage, Save 등이 좋다. 
한 개념에 한 단어를 사용하라
- 똑같은 메서드를 클래스마다 fetch, retrieve, get으로 제각각 부르면 혼란스럽다. 
- 마찬가지로 동일 코드 기반에 Controller, Manager, Driver를 섞어 쓰면 혼란스럽다. 
해법 영역에서 가져온 이름을 사용하라
- 코드를 읽을 사람도 프로그래머이다. 
- 전산 용어, 알고리즘 이름, 패턴 이름 등을 사용해도 좋다. 
- JobQueue 등 
의미있는 맥락을 추가하라
- firstName, lastNam, street, houseNumber, city, state, zipcode라는 변수가 있다. 
- 주소와 관련되어 있다는 사실을 쉽게 알아 차릴 수 있지만, 어떤 메서드가 state라는 변수하나만 사용한다면 어렵다. 
- addr라는 접두어를 추가해서 맥락을 더 구분하기 쉽게 한다. 
- Address라는 클래스를 생성하면 더 좋다. 
불필요한 맥락을 없애자
- Gas Station Deluxe라는 어플리케이션을 짠다고 가정학, 모든 클래스이름을 GSD로 시작한다는 생각은 바람직하지 못하다. 
- IDE에서 G를 입력하고 자동완성을 하려면 모든 클래스를 열거 한다. IDE를 방해할 이유는 없다.