Jak należy rozdzielić słowa w nazwach pakietów? Które z poniższych są poprawne?
com.stackoverflow.my_package
(podkreślać)com.stackoverflow.my-package
(Myślniki)com.stackoverflow.MyPackage
(CamelCase)
Jaki jest ogólny standard?
java
naming-conventions
package
Dżigar
źródło
źródło
com.stackoverflow.my.package
Odpowiedzi:
Oto, co nakazuje oficjalny dokument konwencji nazewnictwa:
Bibliografia
Zwróć uwagę, że w szczególności wszystko, co następuje po prefiksie domeny najwyższego poziomu, nie jest określone w powyższym dokumencie. JLS zgadza się z tym, podając następujące przykłady:
Istotny jest również następujący fragment:
Bibliografia
źródło
Wszystkie trzy nie są konwencjami.
Zastosowanie
com.stackoverflow.mypackage
.Nazwy pakietów nie są zgodne z konwencją nazewnictwa wielbłądów, podkreśleniami lub łącznikami .
Ponadto Przewodnik po stylu Google Java określa dokładnie tę samą (tj.
com.stackoverflow.mypackage
) Konwencję:źródło
Każdy może używać podkreślenia _ (jego OK)
Nikt nie powinien używać hypen - (jego zła praktyka)
Nikt nie powinien używać wielkich liter w nazwach paczek (zła praktyka)
UWAGA: Tutaj „Zła praktyka” jest przeznaczona dla tego, że technicznie możesz to wykorzystać, ale konwencjonalnie nie jest to dobre maniery do pisania.
Źródło: Nazywanie pakietu (docs.oracle)
źródło
Oficjalne konwencje nazewnictwa nie są aż tak rygorystyczne, nawet nie zabraniają notacji na wielbłądach z wyjątkiem prefiksu (
com
w twoim przykładzie).Ale osobiście unikałbym wielkich liter
i łączników, a nawet liczb. Wybrałbymcom.stackoverflow.mypackage
jak Bragboy zasugerował też.(dzielenia wyrazów „-” nie są dozwolone w nazwach pakietów)
EDYTOWAĆ
Ciekawe - specyfikacja języka ma również coś do powiedzenia na temat konwencji nazewnictwa.
W rozdziale 7.7 Unikalne nazwy pakietów widzimy przykłady z nazwami pakietów składającymi się z wielkich liter (więc notacja CamelCase byłaby OK) i sugerują zastąpienie hiphonacji znakiem podkreślenia („mary-lou” -> „mary_lou”) i prefiksem java słowa kluczowe z podkreśleniem („com.example.enum” -> „com.example._enum”)
Więcej przykładów wielkich liter w nazwach pakietów można znaleźć w rozdziale 6.8.1 Nazwy pakietów .
źródło
Podkreślenia wyglądają brzydko w nazwach pakietów. Co jest warte, w przypadku nazw złożonych z trzech lub więcej słów używam inicjałów (na przykład:),
com.company.app.ingresoegresofijo (ingreso/egreso fijo) -> com.company.app.iefijo
a następnie dokumentuję cel pakietupackage-info.java
.źródło
Łączenie słów w nazwie pakietu jest czymś, czego większość programistów nie robi.
Możesz użyć czegoś takiego.
com.stackoverflow.mypackage
Zobacz deklarację nazwy JLS
źródło