변수나 함수 그리고 클래스 이름을 지을 때는 아래와 같은 질문에 답해보자.
- 변수(혹은 함수나 클래스)의 존재 이유는?
- 수행 기능은?
- 사용 방법은?
따로 주석이 필요한 이름은 의도를 분명히 드러내지 못한 이름이다.
경과 시간을 나타내는 변수의 이름을 짓는다고 가정하자.
int d; // 의도를 알기 어려운 변수명
int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;
d는 아무 의미도 드러나지 않는다. 그러므로 아래 4개처럼 측정하려는 값이나 단위를 표시해주면 변수의 의도를 더 명확히 나타낼 수 있다.
다른 예시를 봐보자.
public List<int[]> getThem() {
}
코드가 복잡하지 않지만, 코드가 하는 일을 짐작하기 어렵다.
- theList에 무엇이 들었는가?
- theList에서 0번째 값은 왜 중요한가?
- 값 4의 의미?
- 반환된 list1은 어떻게 사용되는가?
public List<int[]> getFlaggedCells() {
}