코드를 작성하면서 변수나 함수, 클래스의 이름을 짓는 것이 쉽지 않음을 매번 느낀다. 전에는 비슷한 일을 함수의 이름을 어떻게 지었지? 이 변수는 복수형인데 그동안 뒤에 s 를 붙였었나? 이전의 클래스랑 비슷한 클래스에서 살짝만 바뀌었는데 이건 어떻게 이름을 짓지? 등과 같은 고민을 수도 없이 했다. 이번 장에서는 이러한 고민들에 조그마한 도움이 될 수 있는 이름 짓는 규칙에 대해 설명을 한다.
의도를 분명히 하라
좋은 이름을 지으려면 시간이 필요하지만, 좋은 이름으로 절약하는 시간이 훨씬 많다.
의도가 명확히 드러나는 코드를 작성해야 한다. 이름만으로도 함수 및 클래스가 하는 일을 더 빨리 파악할 수 있게 도와준다. 개발자들이 코드를 작성하는 시간보다 읽는데 더 많은 시간을 보내므로 이는 개발자의 행복으로 보상받는다. 만약 의도가 드러나지 않는 이름을 발견한다면 즉시 수정하자. 그럼 많은 개발자들이 고마워 할 것이다.
그릇된 정보를 피하라
약어 등과 같은 축약된 이름을 사용하지 말고, O(대문자 o)와 l(소문자 L) 한 개의 사용을 자제하자. 이는 숫자 0과 1과 헷갈리게 만들 수 있는 문제를 발생시킨다. 또한 일관되지 않은 표기법 또한 그릇된 정보다.
의미 있게 구분하라
연속된 숫자(`a1` 과 `a2`) 사용을 피하고, a, the 의 사용을 피하자. a, the 의 경우 두 개를 완전히 구분지어 사용하는 것은 괜찮다. 예를들어 클래스에는 a, 객체에는 the 를 붙이자는 규칙이 있다면 좋은 사용법이 될 수 있다. 하지만 이런 규칙이 없을 경우 a 와 the 의 차이가 무엇인지 설명하기 어렵고, 두 가지를 섞어서 사용하게 되는 문제도 발생한다.
또한 ProductInfo 와 ProductData 의 차이점을 설명할 수 있겠는가? NameString 과 Name 은 어떻게 다른가? 이처럼 불필요한 어구를 덧붙이는 것 역시 좋은 이름이 아니다.