3. 오해할 수 없는 이름들
내가 지은 이름을 "다른 사람은 다른 의미로 해석할 수 있을까?"라는 질문을 던져보며 확인하자.
// 1
results = Database.all_objects.filter('year <= 2011')
// 2
def Clip(text, length);1번은 2011년 아래 데이터를 고르기/제외하기 로 해석될 수 있다. select, exclude와 같이 고르기/제외하기로 명시하자.
2번은 처음부터 최대 length만큼 제거한다 라는 뜻일거 같은데, length보다는 maxLength로 하여 의미를 명확히 할 수 있다. 또한, 최대 길이가 바이트/문자/단어 3가지 이상의 의미로 해석될 수 있다. (딱봐도 문자일거 같은데..)
경계를 포함하는 한계값은 min/max 이용하기
CART_TOO_BIG_LIMIT = 10;
if shoppingCart.num_items() > CART_TOO_BIG_LIMITCART_TOO_BIG_LIMIT이 그 수까지를 의미하는지, 해당 수를 포함하면서 그 수까지를 의미하는지 불분명.
MAX_ITEMS_IN_CART로 하면 해당 변수의 값을 포함하는 것으로 해석될 수 있다.
경계를 포함하는 범위에는 first, last를 사용하자.
print integer_range(start = 2, stop = 4)[2,3] / [2,3,4] 중 뭘 출력할까? stop이 모호해서 생기는 문제. 경계를 포함하는 범위에는 first, last가 좋은 선택이 될 수 있다. (min/max도 문맥에 따라 자연스러울 수 있다,.)
경계를 포함/배제하는 범위에는 begin, end를 사용하자.
10월 16일에 일어난 일 모두 출력하기
PrintEventsInRange('16 12:00am', '17 12:00am');
PrintEventsInRange('16 12:00am', '16 11:59:59.9999pm');위에꺼가 좀 더 편리하다.
위와 같이 포함/배제가 일어나면 begin/end를 사용하자. end가 명확하지 않지만 최선의 단어라고 책에서는 표현한다. (begin/end를 대체할 얘가 있을까..)
불리언 변수에 이름 붙이기
is, has, can, should와 같은 단어를 prefix로 활용하기
// before
bool readPassword = false;
// after
needPassword, userIsAuthenticated = false;부정 용어도 피하자. 더 간결해진다. disable_ssl -> use_ssl
summary
경계를 포함하는 한계 값은 min/max가 적절 경계를 포함하는 범위 값은 first/last가 적절 경계를 포함/배제 하는 범위 begin/end가 적절
불리언 변수는 is/has/can/should 와 같은 동사를 이용하여 있는지없는지와 같은 느낌을 줘서 bool값이라고 알려주기.
3장 까지 읽고..
얘가 어떻게 해석될까? 2가지 이상이면 내가 의도한 것으로 구체적 이름짓기.
구체적 이름 짓는 기법은
- 특정 단어 사용하기 
- 변수명에 세부 정보 붙이기 
Last updated
Was this helpful?
