본문 바로가기

Book

Clean Code | 2장 의미 있는 이름

@Clean Code | 2장 의미 있는 이름

 

 

 

-의도를 분명히 밝혀라

  • 변수(혹은 함수나 클래스)의 존재 이유?
  • 수행 기능?
  • 사용 방법?

-> 따로 주석 필요하지 않게

 

 

 

-코드의 단순성보다는 '함축성'이 중요

  • 코드 맥락이 코드 자체에 명시적으로 드러나게

 

 

 

-그릇된 정보를 피하라

  • 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용하지 않기 -> ex) List
  • 비슷한 이름 사용하지 않기 
  • 소문자 L이나 대문자 O 주의(0, 1 같아 보임)

 

 

 

-의미 있게 구분하라

  • 읽는 사람이 차이를 알도록 이름 짓기 

-> ex) 오류 형태: getActiveAccount(), getActiveAccounts(), getActiveAccountInfo()

 

 

 

 

-발음하기 쉬운 이름을 사용하라

  • ex) genymdhms -> generationTimestamp

 

 

 

-검색하기 쉬운 이름을 사용하라

  • 긴 이름이 짧은 이름보다 좋음
  • 검색하기 쉬운 이름이 상수보다 좋음 -> ex) 7, e -> work_days_per_week
  • 이름 길이는 범위 크기에 비례해야 함

 

 

 

-인코딩, 헝가리식 표기법을 피하라(ex) m_)

  • 유형이나 범위까지 인코딩에 넣으면 그만큼 이름을 해독하기 어려움
  • 기술의 발전으로 이젠 오히려 헝가리식 표기법이나 기타 인코딩 방식이 방해됨

 

 

 

-자신의 기억력을 자랑하지 마라

  • 루프에서 반복 횟수를 세는 변수 i, j, k를 제외하곤 문자 하나만 사용하는 변수 이름은 문제가 있음
  • 루프에서도 변수 (l은 절대 안됨!)
  • 최악은 이미 a와 b를 사용하므로 c를 선택한다는 논리 -> 독자가 실제 개념으로 변환해야 하기 때문
  • '명료함'이 최고

 

 

 

-클래스 이름에는 명사, 명사구

-메서드 이름에는 동사, 동사구

 

 

 

-기발한 이름은 피하라

  • 특정 문화에서만 사용하는 농담이나 기발한 이름 피하기
  • 의도를 분명하고 솔직하게 표현하기

 

 

 

-한 개념에 한 단어를 사용하라

  • 메서드 이름은 독저적, 일관적이어야 함 -> 주석을 뒤져보지 않고도 올바른 메서드 선택 가능
  • 다른 개념에 같은 단어를 사용한다면 그것은 말장난에 불과함

 

 

 

-기술 개념에는 기술 이름이 가장 적합

-문제 영역 개념에는 문제 영역에서 이름 가져오기

 

 

 

-의미 있는 맥락을 추가하라

  • 스스로 의미가 분명하지 않을 경우 클래스, 함수, 이름 공간에 맥락 부여하거나 접두어 붙이기
  • 의미가 분명한 경우엔 쓸데없는 맥락 추가하지 않기

 

 

 

 

'Book' 카테고리의 다른 글


Tiny Star