이름 작성 규칙
- 명확한 의도
- 함수명, 변수명 등의 이름을 지을 때에는 명확한 의도가 보이도록 이름 작성하기
- ex) int d; // 경과 시간을 나타낸 것이지만 명확한 의미를 파악하기 X
- int daysSinceCreation; // 이와 같이 의도가 보이는 것으로 이름 작성하기
- 함수명, 변수명 등의 이름을 지을 때에는 명확한 의도가 보이도록 이름 작성하기
- 잘못된 정보 피하기
- 다른 뜻으로 의미가 전달될 수 있는 이름 피하기
- ex) int hp; // 직각삼각형의 빗변(hypotenuse) 구현에 사용하는 변수
- 괜찮은 약자라고 보이지만 다른 의미로 파악될 수 있으므로 좋은 변수명은 아니다.
- 유사한 이름 사용 X
- ex) XYZControllerForEfficientHandlingOfStrings와 XYZControllerForEffecientStorageOfStrings의 이름만으로 두 모듈의 기능 차이를 알 수 있는가? → NO
- 유사하게 생긴 문자들을 한꺼번에 사용 X
- 소문자 L, 대문자 I, 숫자 1을 혼합해서 사용 X
- 영문자 O와 숫자 0 혼합 사용 X
- 다른 뜻으로 의미가 전달될 수 있는 이름 피하기
- 의미 있게 구분
- 불용어(의미 없는 언어)나 한 단어에 연속적인 숫자를 붙인 단어 사용 X
- 발음하기 쉬운 이름 사용
- 검색하기 쉬운 이름 사용
- 이름의 길이는 범위 크기에 비례해서 짓기
- 인코딩 피하기
- 헝가리식 표기법 X
- 헝가리식 표기법 : 이름에 데이터 타입이 포함되는 것
- 멤버변수 접두어 X
- 클래스의 멤버 변수 앞에 "m_"과 같은 접두 사용 X
- 인터페이스 클래스와 구현 클래스
- 인터페이스의 접두어 "I" 사용 X
- 인터페이스와 구현 클래스 중 인코딩을 한다면 구현 클래스이 더 나음
- 헝가리식 표기법 X
- 코드를 읽을 때 자기만의 이름으로 이름 변경 X
- 기억하지 못할 확률 ↑