다른 개발자가 봤을 때 한 번에 무슨 뜻인지, 무슨 기능을 하는지 알아낼 수 있는 이름이어야 한다. 그러면서도 아주 간결해야 한다.
네이밍 방법
1. 이름 짓기는 창조가 아니라 조합
- 무에서 유를 창조하는것이 아니다.
- 라이브러리 사용처럼 기존 방식이나 이름을 차용해 새로운 이름을 짓는 경우가 많다.
- 정해진 원칙으로 적절한 단어를 선택해 조합하는 과정이다.
2. 영어 표기법으로 이름 짓기
- 중요하거나 크거나 특정한 것을 가리키거나 제목에 해당하는 명사는 모두 첫 글자를 대문자로 쓴다.
- 그런 명사들이 이어질때는 첫 글자를 모두 대문자로 쓴다.
- 명사나 관사가 아닌 동사, 형용사 등은 소문자를 쓴다.
이런 규칙으로 파스칼 표기법과 카멜 표기법이 만들어 졌다.
3. 클래스, 인터페이스 이름은 파스칼 표기법(PascalCase)
- 클래스가 프로그래밍에서 가장 주요하고 높은 위치에 있음
- 고유명사처럼 특정되고 명사로 되어있다.
interfcae Menu
class CoffeeMenu implements Menu
4. 함수, 변수는 카멜 표기법 (camelCase)
- 함수는 주로 동작을 시키는 명령어 개념으로, 첫단어가 주로 동사이다.
- 변수는 형용사로 시작하는 경우도 많다.
- 영어 표기법은 명사가 아닌 경우는 소문자로 시작한다.
5. 상수는 모두 대문자로 작성 (CONST_NAMING)
- 상수는 값이 변하면 안된다는것을 강조하며
- 가독성을 높일 수 있다.
6. 패키지, 모듈은 소문자로 작성 (packagemodule)
- 패키지와 모듈은 클래스나 함수보다 너 높은 위치이나, 소문자로만 쓴다.
- 우리가 인식하고 구별하는것은 그 아래인 클래스나 함수이지, 패키지 모듈이 아니기 때문이다.
- 또한 클래스나 함수와 이름을 혼동하지 않기 위한 이유도 있다.
kr.co.wikibook.android.developerwriting
import developerwriting
7. CSS의 BEM(Block, Element, Modifier) 표기법
대상__요소--상태
의 형태로 나타낸다. (.form__button--disabed
)
- 대상의 요소나 부분을 의미할때는 언더스코어 두 개(__)
- 대상이나 요소의 상태의 속성을 의미할때는 하이픈 두 개(--)
가장 중요한건 가독성과 소통!
- 가장 핵심은 위의 7가지 규칙이 아닌, 가독성과 소통이 잘되느냐이다!
- 같은 맥락에서 컨벤션을 지킬때, 가독성과 소통을 다 잡을 수가 있다.🤙🏻