카테고리 없음

[Effective Java] Item68. 일반적으로 통용되는 명명 규칙을 따라라

📝 작성 : 2022.08.21  ⏱ 수정 : 
728x90

패키지 명명 규칙

  • 패키지와 모듈 이름은 각 요소를 점(.)으로 구분하여 계층적으로 짓습니다.
  • 요소들은 모두 소문자 알파벳 혹은 숫자를 사용합니다.
  • 패키지를 설명하는 하나 이상의 요소로 이루어져야 합니다.
  • 일반적으로 8자 이하의 짧은 단어로 이름을 짓습니다.

클래스, 인터페이스

  • 하나 이상의 단어로 구성하며, 첫 글자는 무조건 대문자로 작성합니다.
  • 여러 단어의 첫글자만 딴 약자나 널리 통용되는 줄임말을 제외하고는 줄이지 않습니다.
  • HttpUrl의 URL과 같은 약자의 경우 대부분은 첫 글자만 대문자로 사용합니다.

메서드, 필드

  • 첫 글자를 소문자로 쓴다는 점만 제외하면 클래스 명명 규칙과 동일합니다.
  • 첫 단어가 약자라면 단어 전체가 소문자입니다.

상수

  • 구성하는 단어 모두 대문자로 쓰며 단어 사이는 밑줄로 구분합니다.

지역변수

  • 다른 멤버와 비슷한 명명 규칙이 적용됩니다. 약어를 사용해도 변수의 문맥을 통해 유추 가능하기 때문에 약어를 사용해도 괜찮습니다.

타입 매개변수

  • 보통 한 글자로 표현합니다.
  • T : 임의의 타입
  • E : 컬렉션 원소의 타입
  • K : 맵의 키
  • V : 맵의 값
  • X : 예외
  • R : 메서드의 반환 타입
  • T, U, V or T1, T2, T3 : 임의 타입의 시퀀스

문법 규칙

  • 객체를 생성하는 클래스나 열거타입 인터페이스는 단수 명사나 명사구를 사용합니다.(Thread, PriorityQueue)
  • 객체를 생성할 수 없는 클래스에는 보통 복수형 명사로 짓습니다.(Collectors, Collections)
  • 인터페이스 이름은 클래스명과 동일하게 짓거나, ible, able로 끝나는 형용사로 짓습니다.(Runnable, Iterable)
  • 애너테이션은 특별한 규칙이 없습니다.
  • 메서드의 이름은 동사나 목적어를 포함한 동사구로 짓습니다.(append, drawImage)
  • boolean 값을 반환하는 메서드라면 is, has로 짓습니다.(isEmpty, hasSiblings)
  • 반환타입이 boolean이 아닌경우 보통 명사, 명사구, get-로 짓습니다.(size, getTime)
  • 반환타입을 또다른 타입으로 반환하는 경우 toType의 형태로 짓습니다.(toString, toArray)
  • 객체 내용을 다른 뷰로 보여주는 메서드는 asType의 형태로 짓습니다.(asList)
  • 객체의 값을 기본타입으로 반환하는 경우 typeValue의 형태로 짓습니다.(intValue, longValue)
  • 정적 팩터리의 이름은 다양합니다.(from,m valueOf, getInstance)
반응형