2장. 의미 있는 이름
의도를 분명히 밝혀라
변수(함수, 클래스)의 존재 이유는?
수행 기능은?
사용 방법은?
그릇된 정보를 피하라
예약어 사용 X ⇒ accountList, accountGroup, bunchOfAccounts 대신 Accounts
비슷한 이름 사용 X
l, O 사용 X
의미 있게 구분하라
추가해도 의미는 변하지 않는 단어를 추가 X
Product클래스가 이미 있다고 ProductInfo, ProductData클래스를 만들지 말자
발음하기 쉬운 이름을 사용하라
검색하기 쉬운 이름을 사용하라
한 글자 이름 X
상수 ⇒ 상수 7을 사용하면 7을 포함하는 변수명, 파일명, 수식이 모두 검색된다
이름 길이는 범위 크기에 비례해야 한다.
인코딩을 피하라
헝가리식 표기법, 멤버변수 접두어 X
인터페이스 클래스와 구현 클래스
InterfaceName : InterfaceNameImpl
자신의 기억력을 자랑하지 마라
문자 하나만을 사용하는 이름은 반복문에서 반복 횟수를 셀 때나 사용
명료함을 위해
클래스 이름
명사
noise word(Manager, Data, Info)와 동사는 피함
메서드 이름
동사
get, set, is 활용
생성자 오버로딩 할 때는 스태틱 메소드 활용하고 해당 생성자 private 선언
기발한 이름은 피하라
한 개념에 한 단어를 사용하라
fetch, retrieve, get 중에서 하나만 사용
driver, controller, manager 중에서 하나만 사용
말장난을 하지 마라
add를 두 원소를 더하는 메소드 이름으로 사용 중인데
집합에 값을 하나 추가하는 메소드도 add로 하진 말자
insert, append
해법 영역에서 가져온 이름을 사용하라
모든 이름을 문제 영역에서 가져올 필요는 없다
모두가 아는 용어, 알고리즘 이름, 패턴 이름, 수학 용어를 사용해도 된다
문제 영역에서 가져온 이름을 사용하라
적절한 용어가 없가면 문제 영역에서 이름을 가져온다
의미 있는 맥락을 추가하라
이름만으로는 의미가 부족할 수 있다.
클래스, 함수, namespace를 활용
접두어
street, houseNumber, city, state, zipcode 가 모두 있다면 주소라는 맥락을 알수 있지만 state 하나만 있다면 맥락을 알기 어렵다.
Address클래스에 담기, 접두어 addr 붙이기
불필요한 맥락을 없애라
긴 이름 보다는 짧은 이름이 바람직하다.
AccountAddress, CustomerAddress는 클래스 이름보다는 인스턴스 이름으로 적절하고 Address라는 이름이 적절하다.
Last updated