E D R , A S I H C RSS

Intention Revealing Selector

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&);
이로써 좀더 잘 지은 이름이 나왔다.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-05-27 07:09:19
Processing time 0.0828 sec