Qual è lo scopo della convenzione di denominazione dei pacchetti Java?


14

Non capisco perché Java usi il contrario di un nome di dominio (probabilmente ipotetico) come nome di un pacchetto, mentre per lo più non c'è alcuna connessione tra il nome di dominio che alcune persone usano e i prodotti che hanno. Molti sviluppatori non hanno nemmeno alcun dominio.

Quali sono i motivi di questa convenzione di denominazione, se presente?


Anche senza un dominio è pratica comune in Java-land far finta di fare per la denominazione dei pacchetti. Ad esempio, nel tuo caso, utilizzeresti com.louisrhys.xxx.yyyse possiedi o menolouisrhys.com
Wayne Molina,

Risposte:


14

Unicità globale. Se tutti, o almeno gli sviluppatori seri che distribuiscono il loro codice oltre i progetti interni, aderiscono a tale convenzione, non accadrà mai che si ottengano scontri di nomi quando si aggiunge un'altra libreria di terze parti al progetto. Tieni presente che Java è stato inizialmente propagato come soluzione per la distribuzione del codice sempre e ovunque (tramite applet e caricamento di classe remoto su Internet).


3
In Java 1.4 Sun utilizzava gli strumenti Apache XML open source senza modificare lo spazio dei nomi. Ha reso piuttosto "interessante" provare ad avere una versione più recente nelle proprie applicazioni.

3
Java was initially propagated as a solution for code deployment anywhere, anytime Al contrario di ciò che Java è ora? Non ti conosco ma uso ancora con successo Java WebStart per distribuire il codice lato client su migliaia di PC in una rete interna. Questo rende "Release Early, Release spesso" molto meno doloroso per tutti.
maple_shaft

1
Non necessariamente vero. Alla fine perderai un nome di dominio; morendo o semplicemente dimenticando di rinnovarlo. Qualcun altro potrebbe acquistarlo e, senza accorgersene, pubblicherà un pacchetto Java in conflitto con il tuo. E c'è anche la possibilità che qualcuno possieda il dominio prima di te e metta fuori codice con cui il tuo codice è in conflitto.
Kevin,

@maple_shaft Non è stato così per la maggior parte degli utenti dal declino delle applet Java. Piuttosto è solo un'altra piattaforma per applicazioni (come, diciamo, Qt o XUL o Electron).
user253751

12

Come dice Wikipedia sull'argomento,

"La specifica del linguaggio Java stabilisce convenzioni di denominazione dei pacchetti per evitare la possibilità che due pacchetti pubblicati abbiano lo stesso nome."


La specifica specifica quale convenzione utilizzare se lo sviluppatore non ha il proprio nome di dominio?
FrustratedWithFormsDesigner,

@FrustratedWithFormsDesigner: No, non lo è .
Mike Seymour,

@MikeSeymour: Quindi ... possiamo nominarli come vogliamo in quel caso? Woohoo! :)
FrustratedWithFormsDesigner

1
@FrustratedWithFormsDesigner Puoi nominarli come preferisci in ogni caso. Se desideri che altre persone utilizzino il tuo software, dovresti seguire le specifiche e dedurre uno spazio dei nomi logico e probabilmente unico se non hai un dominio reale.
Jeremy,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.