Pakiety Java com i org

126

Jakie jest znaczenie pakietów orgi comJava?

Gabriel
źródło

Odpowiedzi:

113

Według firmy Sun pakiety powinny być rozmieszczone w przestrzeni nazw zgodnie z odwrotnością nazwy domeny, a następnie powinny znajdować się na niej dowolne elementy. Większość firm lub organizacji ma nazwę domeny .comlub .orgnazwę domeny, dlatego większość pakietów zaczyna się od com.lub org.. Cytat z Konwencji Sun Code :

Przedrostek unikalnej nazwy pakietu jest zawsze zapisywany małymi literami ASCII i powinien być jedną z nazw domen najwyższego poziomu, obecnie com, edu, gov, mil, net, org lub jednym z dwuliterowych kodów angielskich identyfikacja krajów zgodnie z normą ISO 3166, 1981.

Kolejne składniki nazwy pakietu różnią się w zależności od wewnętrznych konwencji nazewnictwa organizacji. Takie konwencje mogą określać, że niektórymi składnikami nazw katalogów są nazwy działu, działu, projektu, komputera lub nazwy logowania.

A przykłady, które podają, jasno pokazują, że masz używać nazwy DNS firmy:

com.sun.eng

com.apple.quicktime.v2

edu.cmu.cs.bovik.cheese

Zobaczysz także edu.i net.paczki na wolności , chociaż są one mniej powszechne.

Paul Wagland
źródło
3
Co się stanie, jeśli firma zmieni domeny?
Leonardo Raele
4
@LeonardoRaele Zazwyczaj w tym przypadku wkraczasz w świat bólu ;-) A poważniej, są dwie opcje, zmień nazwy wszystkich klas, które i tak mogą działać, jeśli kod jest wewnętrzny, lub zostaw go używając starej nazwy, ponieważ prawdopodobnie i tak być wyjątkowym.
Paul Wagland
2
Jaka jest najlepsza konwencja nazewnictwa, jeśli nie należysz do organizacji lub nie masz witryny internetowej? Widziałem me.usernamesugerowane wcześniej, ale nie jestem pewien, czy to najlepszy, czy jedyny standard.
Aaron Franke,
2
@AaronFranke Widziałem, jak ludzie używają swojej nazwy użytkownika GitHub jako swojej domeny, więc na przykład: com.guthub.pwagland.xxx głównym celem jest uzyskanie unikalnej nazwy, aby nie trzeba było jej zmieniać. nigdy nie będzie w konflikcie z imieniem, które wybrał ktoś inny.
Paul Wagland,
1
co zrobić, jeśli Twoja firma ma 2 domeny, tj. wordpress.com i wordpress.org
Janac Meena
48

Możesz również zobaczyć nazwy pakietów jako odwrócone nazwy domen internetowych (co często jest również prawdziwe w świecie rzeczywistym, zobacz na przykład, org.apache.commonsktóre korelują z http://commons.apache.org ). com(Handlowy) i org(organizacja) są tu wtedy faktycznie Top Level Domain nazwy.

Nazwy pakietów służą głównie do identyfikacji producenta / dostawcy kodu, z którym masz do czynienia.

BalusC
źródło
16
I zapewnić niepowtarzalność nazwy opakowania. Myślę, że to całkiem sprytny sposób na zrobienie tego
Thorbjørn Ravn Andersen
2
Może się mylę, ale komunikat com wydaje się niepotrzebny w tym momencie, jeśli wszyscy będą go używać. Wolałbym używać samej nazwy firmy. Wolę system nazewnictwa, który mają dla innych systemów pakowania, takich jak npm i composer. Używają „nazwy użytkownika / nazwy pakietu” lub czegoś podobnego. Więc nazwałbym swoje pakiety w java jako „nazwa_użytkownika.nazwa_pakietu”
OzzyTheGiant
9

Zwykle comjest używany przez firmy podczas nadawania nazw pakietom, compo których następuje nazwa firmy. Na przykład masz com.sunpakiety w JVM.

orgPrefiks pakiet jest stosowany głównie przez organizacje non-profit lub na kodzie open source, takie jak Apache, W3C, etc.

Guillaume
źródło
Konwencja korzystania z firmowego adresu URL .com dla kodu wewnętrznego i .org dla dowolnego kodu upublicznionego jest dobrym pomysłem. Oto, co podsumowałem na podstawie tej odpowiedzi.
Dennis,
3
Dennis, nie sądzę, żeby to był dobry pomysł. Oznacza to, że wydanie kodu zmieniłoby nazwy pakietów i zepsułoby wewnętrzne oprogramowanie, które używa oryginalnych nazw. Ponadto wystąpiłaby kolizja przestrzeni nazw, jeśli domeny example.com i example.org są własnością różnych firm i obie chcą udostępnić kod Java.
proski
3

Zobacz dokumentację Oracle dotyczącą nazewnictwa pakietów

Zobacz Konwencje nazewnictwa dla standardowego nazewnictwa klas / interfejsów / adnotacji / etc

nazwa pakietu i standardowa składnia klasy:
<twoja domena w odwrotnej kolejności>. <nazwa projektu>. <kontroler / dao / usługa / handlers etc>. <twoja klasa>

przykład1: (tutaj domain: - "stackoverflow.com", projekt: - "Test")
com.stackoverfllow.test.handler.TestHandler

przykład2: (tutaj domain: - "www.google.co.in", projekt: - "My Proj")
in.co.google.myproj.controller.MainController

ale w przypadku domen zarezerwowanych, takich jak java. *, javax. *, sun. * itd., należy uzyskać pozwolenie od społeczności oracle

Dharmendrasinh Chudasama
źródło