Java 패키지 이름에서 단어 구분 기호에 대한 규칙은 무엇입니까?
패키지 이름에서 단어를 어떻게 분리해야합니까? 다음 중 올바른 것은 무엇입니까?
com.stackoverflow.my_package(밑줄)com.stackoverflow.my-package(하이픈)com.stackoverflow.MyPackage(카멜 케이스)
일반적인 표준은 무엇입니까?
공식 명명 규칙 문서에서 규정 한 내용은 다음과 같습니다.
패키지
독특한 패키지 이름의 접두어는 항상 모두 소문자 ASCII 문자로 작성하고 최상위 도메인 이름 중 하나 여야합니다, 현재
com,edu,gov,mil,net,org, 또는 국가를 식별하는 영어 두 문자 코드 중 하나가 ISO에 규정 된 표준 3166, 1981.패키지 이름의 후속 구성 요소는 조직 자체의 내부 명명 규칙에 따라 다릅니다. 이러한 규칙은 특정 디렉토리 이름 구성 요소를 부서, 부서, 프로젝트, 기계 또는 로그인 이름으로 지정할 수 있습니다.
예
com.sun.engcom.apple.quicktime.v2edu.cmu.cs.bovik.cheese
참고 문헌
특히 최상위 도메인 접두사 다음에 나오는 내용은 위의 문서에서 지정하지 않았습니다. JLS는 또한 다음 예제를 제공함으로써 이에 동의합니다.
com.sun.sunsoft.DOEgov.whitehouse.socks.mousefindercom.JavaSoft.jag.Oakorg.npr.pledge.driveruk.ac.city.rugby.game
다음 발췌문도 관련이 있습니다.
경우에 따라 인터넷 도메인 이름이 유효한 패키지 이름이 아닐 수도 있습니다. 이러한 상황을 처리하기위한 몇 가지 제안 된 규칙은 다음과 같습니다.
- 도메인 이름에 하이픈이나 식별자에 허용되지 않는 다른 특수 문자가 포함되어 있으면 밑줄로 변환하십시오.
- 결과 패키지 이름 구성 요소 중 하나가 키워드 인 경우 밑줄을 추가하십시오.
- 결과 패키지 이름 구성 요소 중 하나가 숫자로 시작하거나 식별자의 초기 문자로 허용되지 않는 다른 문자는 구성 요소 앞에 밑줄이 붙습니다.
참고 문헌
세 가지 모두 규칙이 아닙니다.
사용하십시오 com.stackoverflow.mypackage.
패키지 이름은 낙타 케이싱, 밑줄 또는 하이픈 패키지 이름 지정 규칙을 따르지 않습니다 .
또한 Google Java 스타일 가이드는 정확히 동일한 (예 :) com.stackoverflow.mypackage규칙을 지정합니다.
5.2.1 패키지 이름
패키지 이름은 모두 소문자이며 연속 단어는 단순히 함께 연결됩니다 (밑줄 없음). 예를 들어
com.example.deepspace, 하지com.example.deepSpace나com.example.deep_space.
공식 명명 규칙은 엄격하지 않으며 접두사를 제외하고 낙타 표기법을 '금지'하지 않습니다 ( com예제에서).
그러나 나는 개인적으로 대문자
와 하이픈
, 심지어 숫자를 피할 것
입니다. 나는 com.stackoverflow.mypackageBragboy가 제안한 것처럼 선택할 것입니다.
(하이픈 '-'은 패키지 이름에서 유효하지 않습니다)
편집하다
흥미 롭습니다-언어 사양에는 명명 규칙에 대해서도 할 말이 있습니다.
에서 장 7.7 고유 한 패키지 이름은 우리는 (낙타 표기법 표기가 확인 될 수 있도록) 대문자로 구성 패키지 이름과 예제를 참조하고 밑줄 ( "메리 - 루"-> "mary_lou")에 의해 hyphonation를 교체하는 것이 좋습니다 접두사 자바 밑줄이있는 키워드 ( "com.example.enum"-> "com.example._enum")
패키지 이름의 대문자에 대한 몇 가지 예는 6.8.1 패키지 이름 장에서 찾을 수 있습니다 .
누구나 밑줄을 사용할 수 있습니다 _ (괜찮습니다)
아무도 하이픈을 사용해서는 안됩니다 - (나쁜 연습)
패키지 이름 안에 대문자를 사용해서는 안됩니다 (잘못된 방법)
참고 : 여기서 "나쁜 습관"은 기술적으로 사용하기위한 것이지만 일반적으로 작성하기에는 적합하지 않습니다.
밑줄은 패키지 이름에서보기 흉하게 보입니다. 가치있는 것을 위해 이름이 3 단어 이상인 경우 이니셜 (예 :)을 사용 com.company.app.ingresoegresofijo (ingreso/egreso fijo) -> com.company.app.iefijo하고 패키지 목적을 문서화하십시오 package-info.java.
패키지 이름에 단어를 연결하는 것은 대부분의 개발자가하지 않는 일입니다.
당신은 같은 것을 사용할 수 있습니다.
com.stackoverflow.mypackage
JLS 이름 선언 참조
'Programming' 카테고리의 다른 글
| PreparedStatement IN 절 대안? (0) | 2020.03.06 |
|---|---|
| Linux 커널에서 가능성이 높거나 가능성이 낮은 매크로는 어떻게 작동하며 그 이점은 무엇입니까? (0) | 2020.03.06 |
| git의“rebase --preserve-merges”는 정확히 무엇을하며 왜 그런가? (0) | 2020.03.06 |
| R에서 문자열의 길이를 찾는 방법 (0) | 2020.03.06 |
| git에서 merge --squash와 rebase의 차이점은 무엇입니까? (0) | 2020.03.06 |
