의도를 분명히 밝혀라
- 변수(혹은 함수나 클래스)의 존재 이유가 무엇인가?
- 어떤 일을 수행하는가?
- 어떻게 사용하는가?
이름으로 위 세가지가 표현이 안된다면 문제가 있다.
변수의 이름은 범위 크기에 비례해야 한다.
1 | int pricePerLotto = 1000; |
이름이 길수록 사용되는 범위가 넓다고 생각하자.
예를 들면 for 문의 i는 해당 루프에서만 사용되서 짧아도 된다.
이름이 길수록 검색도 용이하다.
맥락을 추가하라
이름 그 자체로 의미를 분명히 보여주는 변수는 없다.
함수나 클래스에서 맥락을 부여하면 이름을 더 자연스럽게 읽힐 수 있다.
이마저도 힘들면 접두사를 붙일 수 있다. (stateName, 이런 식으로..)
1 | public void printNameAndPosition(String name, String position) { |
name는 어떤 이름을 의미하고, positon는 어떤 위치를 표시하는 건지 도저히 알 수 없다.
이름과 포지션은 사실 자동차의 이름과 자동차의 위치를 말해주는 변수들이다.
그럼 이를 더 잘 알려주기 위해 맥락을 추가해보자.
1 | public class Car { |
이제 Car라는 맥락 안에서 이름과 위치를 파악하면 좀 더 의미있게 파악할 수 있다.
불필요한 맥락 제거
그렇다고 불필요하게 맥락을 이름에 붙여주는건 불필요하다.
1 | public class Car { |
이미 Car라는 맥락 안에서 쓰이는 이름에 굳이 car를 붙이지 않아도 되지않을까?