이름을 잘 짓는 간단한 규칙 몇가지
코드가 단순하다고 해도 함축성을 가지고 있으면 잘 쓴 변수라고 할 수 없다.
함축성이 있는지 체크하는 방법.
- 자신이 쓴 코드를 읽고 독자가 어떤 정보를 안다고 가정했는지 고민할것. (만약 코딩 테스트를 치루는데 배열의 이름을 dp라고 한다면 독자가 해당 배열이 동적 계획을 담은 Memoization 배열이라는 정보를 안다고 가정하는 것이다.)
a1
. a2
, a3
, …) 은 피할 것.Info
, Data
와 정보없는 단어도 사용하지 말 것.gendymhms
(generate date
, year
, month
, day
, hour
, min
, sec
)와 같은 발음하기 힘든 이름은 사용하지 말것. → generationTimeStamp
로 변경 가능5
⇒ WORK_DAYS_PER_WEEK
: 5를 사용하는 것보다 해당 이름으로 변수화하는 것 이 좋다.한 문자
로 사용하고 변수나 상수를 여러 곳에서 사용한다면 검색하기 쉬운 이름이 바람직함.m_dsc
, m_rsv
와 같은 접두어는 사용하면 안됨.I
를 붙이지 말자ShapeFactoryImp
처럼.i
, j
, k
는 괜찮다, l
은 안된다!명사
나 명사구
로 설정하라!동사
나 동사구로
설정하라!해법 영역 : 코드나 시스템을 설계하고 구현하는데 사용되는 프로그래밍 개념이나 기술을 의미한다.
ex ) 디자인 패턴, 알고리즘, 데이터 구조 등
문제 영역 : 개발하려는 시스템이 해결하려는 실제 세계의 문제나 업무를 의미한다.
ex ) 사용자 관리, 상품 관리 등의 업무 개념
- 해법 영역에서 가져온 이름을 우선적으로 사용하라.
- 프로그래머에게 익숙한 기술 개념에는 기술 이름이 가장 적합한 선택이다.
→ Visitor 패턴을 했을 때 `AccountVisitor` 라는 변수
좋은 이름을 선택하려면 설명 능력이 뛰어나야하고 문화적 배경이 같아야 한다.
2장의 첫문단과 마지막 문단에 해당 문장이 또 한번 등장하더라구요.
저는 프로젝트 경험이 많지 않아 이러한 프로그래밍적 문화 를 조금 더 많이 알고싶은 마음이 들었습니다.
예를 들어, isDigit와 같이 접두사에 'is'가 붙은 메서드는 boolean을 반환하는 것이 일반적인 관례입니다. 이는 개발자들 사이의 일종의 문화로도 볼 수 있을 것 같아요.
혹시 이러한 경우 말고도 다른 이름짓기 불문율
이 있을까요?
하나씩 공유해주시면 좋은 이름을 선택하는데 다들 도움이 될 것 같습니다!