좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 많다.
public List<int[]> getThem(){
List<int[]> list1 = new ArrayList<int[]>();
for(int[] x : theList)
if (x[0] == 4)
list1.add(x);
return list1;
}
다음 코드에서 이름을 바꿀 때, 고려 해야 할 사항은?
1.theList
에 무엇이 들었는가?
2.theList
에서0
번째 값이 어째서 중요한가?
3. 값4
는 무슨 의미인가?
4. 함수가 반환하는 리스트list1
을 어떻게 사용하는가?
public List<Cell> getFlaggedCells(){
List<Cell> flaggedCells = new ArrayList<Cell>();
for(Cell cell : gameBoard)
if (cell.isFlagged())
flaggedCells.add(cell)
return flaggedCells;
}
다음과 같이 위 코드를 바꿀 수 있다.
List
반환 타입을 (새로 만든 Class) Cell
타입으로 바꿨고
메서드와 리스트 이름을 변경했다.
그리고 Cell
클래스 안에 isFlagged()
메서드를 추가하여 모호성을 없앴다.
Hypotenuse
을 나타내는 hp
와 같은 약어 사용은 바람직하지 않다.) list
와 같은 특수한 의미를 지닌 이름은 피한다.)a
, the
, an
같은) 불용어 사용 Xm_
, 인터페이스를 뜻하는 I
같은 접두어는 사용하지 않는다.Person
, 구현체는 PersonImpl
로 하는 것이 적당하다.controller
, manager
, driver
라는 단어는 같은 기능을 하지만 다른 단어이므로 섞어 쓰면 혼란스러울 수 있다.