@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' 카테고리의 다른 글
[브런치북] 스타트업, 그리고 개발이야기 (0) | 2021.03.27 |
---|---|
Clean code | 4장 주석 (0) | 2021.01.15 |
Clean Code | 3장 함수 (0) | 2021.01.14 |
Clean Code | 1장 깨끗한 코드 (0) | 2021.01.12 |