Java 패키지 이름이 소문자 여야하는 이유는 무엇입니까?
사실 이것은 완전히 이론적 인 질문입니다. 그러나 Java 사양이 패키지에서 대문자를 허용하지 않고 다음과 같이 작성하는 이유는 흥미 롭습니다.
com.mycompany.projname.core.remotefilesystemsynchronization.*
대신에
com.myCompanyName.projName.core.remoteFileSystemSynchronization.*
Oracle Docs 에서 직접
패키지 이름은 클래스 또는 인터페이스 이름과 충돌하지 않도록 모두 소문자로 작성됩니다.
그러나 Java 사양이 패키지에서 대문자를 허용하지 않고 다음과 같이 작성하는 이유는 흥미 롭습니다.
사양 은 괜찮습니다. 모두 소문자를 사용 하는 것은 관례 일뿐 입니다.
gtgaxiola가 말했듯이 이것은 유형 이름과의 충돌을 피합니다 ... .NET 명명 규칙에서 이런 일 이 발생 하여 네임 스페이스와 동일한 클래스 이름을 지정하지 말아야합니다 . 물론, camelCase 패키지를 사용하면 충돌을 완전히 피할 수 있습니다.
현실은 패키지 명명 규칙을 만들 때 철저히 고려되지 않았다는 것입니다. 개인적으로 문제가되는 경우는 거의 없습니다. "remotefilesystemsynchronization"의 한 요소가 포함 된 패키지를 보게된다면 대문자 사용이 중요하지 않습니다. :)
그것의 또 다른 관례-클래스 이름이 항상 대문자로 시작해야하는 이유 또는 메소드 이름이 작은 케이스로 시작한 다음 낙타 케이스로 시작해야하는 이유를 묻습니다. 자바 는 그렇게하도록 강요 하지 않습니다 . 밑줄이 그어진 규칙 세트는 Java 개발자로서 대규모 커뮤니티가 규칙을 따르는 대다수가 쉽게 이해할 수있는 코드를 작성하는 데 도움이됩니다.
그와 같이 명확한 이유를 지정할 수 없습니다. 대회를 작성하는 동안 기분이 좋았 습니다 . 그러나 예 지침은 규칙을 작성하기 전에 분명히있을 것입니다. 나는 그것이 기발한 일을 의미하지 않습니다. 지침은 요소를 확인하는 것만으로 클래스, 메서드 또는 패키지 및 중요한 모든 것이 달성 된 규칙에 있는지 알 수 있어야한다는 것입니다.
참조 URL : https://stackoverflow.com/questions/12534302/why-should-java-package-name-be-lowercase
'development' 카테고리의 다른 글
C ++에서 런타임 동안 동적으로 함수를 만들 수 있습니까? (0) | 2021.01.10 |
---|---|
-[MyClassName copyWithZone :] 인식 할 수없는 선택기가 인스턴스로 전송되었습니다. (0) | 2021.01.10 |
Rmarkdown / knit에서 R 코드를 숨기고 결과 만 표시 (0) | 2021.01.10 |
병합 충돌을 해결 한 후 기본 git 커밋 메시지를 사용하는 방법은 무엇입니까? (0) | 2021.01.10 |
emacs의 커밋 세부 사항으로 자식 비난 (0) | 2021.01.10 |