의도를 분명히 밝혀라
그릇된 정보를 피하라
의미 있게 구분하라
❌ 중복
❌ 변수 이름에 variable
❌ 표에 table
발음하기 쉬운 이름을 사용하라
검색하기 쉬운 이름을 사용하라
이름의 길이는 범위 크기에 비례해야 한다.
MAX_CLASSES_PER_STUDENT 는 grep 으로 찾기 쉽지만, 숫자 7은 은근히 까다롭다.
인코딩을 피하라
❌ 헝가리식 표기법: 컴퓨터 프로그래밍에서 변수 및 함수의 이름 인자 앞에 데이터 타입을 명시하는 코딩 규칙
❌ 멤버 변수 접두어: m_...
❌ 인터페이스 클래스와 구현 클래스: IShapeFactory 보다는 차라리 ShapeFactoryImpl
자신의 기억력을 자랑하지 마라
전문가 프로그래머는 명료함이 최고라는 사실을 이해한다. 전문가 프로그래머는 자신의 능력을 좋은 방향으로 사용해 남들이 이해하는 코드를 내놓는다.
클래스 이름
명사나 명사구가 적합
⭕ Customer, WikiPage, Account, AddressParser 등
❌ Manager, Processor, Data, Info
❌ 동사
메서드 이름
동사나 동사구가 적합
⭕ postPayment, deletePage, save 등
접근자Accessor, 변경자Mutator, 조건자Predicate 는 자바빈 표준에 따라 값 앞에 get, set, is 를 붙인다.
생성자를 overload 할 때는 정적 팩토리 메서드를 사용한다.
⭕ Complex fulcrumPoint = Complex.FromRealNumber(23.0);
❌ Complex fulcrumPoint = new Complex(23.0);
기발한 이름은 피하라
한 개념에 한 단어를 사용하라
일관성 있는 어휘
❌ fetch, retrive, get 섞어 쓰기
❌ controller, manager, driver 섞어 쓰기
말장난을 하지 마라
한 단어를 두 가지 목적으로 사용하지 마라.
AS-IS) add: 기존 값 두개를 더하거나 이어서 새로운 값을 만든다.
TO-DO) 집합에 값 하나를 추가한다. → ❌ add | ⭕ insert, append
해법 영역에서 가져온 이름을 사용하라
기술 개념에는 기술 이름이 가장 적합한 선택이다.
❌ 모든 이름을 모든 문제 영역domain 에서 가져온다.
- VISITOR패턴 - 알고리즘을 객체 구조에서 분리시키는 디자인 패턴
문제 영역에서 가져온 이름을 사용하라
적절한 ‘프로그래머 용어'가 없다면 문제 영역에서 이름을 가져온다.
의미 있는 맥락을 추가하라
addr 라는 접두어를 추가해 addrFirstName, addrLastName, addrState 라 쓰면 맥락이 좀 더 분명해진다. Address 라는 클래스를 생성하면 더 좋다.
불필요한 맥락을 없애라
accountAddress 와 customerAddress 는 Address 클래스 인스턴스로는 좋은 이름이나 클래스 이름으로는 적합하지 못하다.
포트주소, MAC 주소, 웹 주소를 구분해야 한다면, PostalAddress, MAC, URI 라는 이름도 괜찮다.
'Book > Programming' 카테고리의 다른 글
[코틀린을 다루는 기술] Chapter 03. 함수로 프로그래밍하기 (0) | 2020.06.29 |
---|---|
[Test-Driven Development: By Example] 테스트 주도 개발-Money편 (0) | 2020.02.25 |
[Java프로그래밍면접 이렇게 준비한다] Chapter20. 안드로이드 (0) | 2020.01.21 |
[Java프로그래밍면접 이렇게 준비한다] chapter8. 자바 기본 (0) | 2020.01.21 |
[Algorithmic Problem Solving Strategies] 8. 동적계획법 (0) | 2019.11.26 |