Intention Revealing Selector ¶
먼저번 챕터랑 비슷한 이야기다. how가 아닌 what을 중심으로 메소드의 이름을 적자는 것이다.
메소드 이름을 짓는 방법에 두가지 선택이 있다. 첫째는 그 메소드가 어떻게 일을 수행하는지에 대해 짓는것이고, 둘째는 그 메소드가 무엇을 하느냐에 대해 짓는것이다. 지금 당장 how로 지어진 코드가 있다면 what의 형태로 바꿔라. 큰 이득이 될 것이다.(코드 잘 읽기, 보다 유연)
안 좋은 예제
~cpp Array::linearSearchFor(Item&); Set::hashedSearchFor(Item&); BTree::treeSearchFor(Item&);컬렉션을 사용하는 유저의 입장에서 각 컬렉션이 서치를 어떻게 하는지는 알 바 아니다. 알고 싶지도 않을 것이다. 바꿔보자.
~cpp Collection::searchFor(Item&);그냥 찾아라~하는 명령만 내리면 된다. 그런데 아직도 how의 냄새가 좀 나는거 같다. 결국 search를 하는 것은 그 컬렉션안에 우리가 찾는게 들었냐 하는것이다.
~cpp Collection::includes(Item&);이로써 좀더 잘 지은 이름이 나왔다.