Perché tanti spazi dei nomi iniziano con com

45

Ho notato che molte aziende usano gli spazi dei nomi di "nome di dominio inverso" e sono curioso di sapere da dove proviene questa pratica e perché continua. Continua semplicemente a causa della pratica meccanica o esiste un concetto di architettura eccezionale che potrebbe mancare qui?

Nota anche domande come: link quel tipo di risposta alla mia domanda ma non al 100%

(Se ti fa sentire meglio, sono davvero curioso di usarlo per i miei sforzi di namespace su javascript, ma sono più curioso di sapere quando e perché, e questo dovrebbe aiutami a guidare sulla risposta javascript, nota bene: "window")

Esempio di questa pratica che si estende a cartelle e file:

    
posta jcolebrand 21.12.2012 - 22:42
fonte

4 risposte

53

Notazione del dominio inverso ha le sue origini in Java, ma è ampiamente usato in molte piattaforme, come i pacchetti Android, Mac Pacchetti OS X, JavaScript, ActionScript e altro.

La pratica è estremamente utile perché fornisce un sistema decentralizzato per il software di namespacing. Non è necessario rivolgersi a un'agenzia centralizzata per uno spazio dei nomi; usa semplicemente il nome di dominio che possiedi (invertito) e gestiscilo all'interno della tua organizzazione. Assegnando nomi a pacchetti come questo, è quasi certo che il codice non sarà in conflitto con altri pacchetti.

Da Oracle Java Tutorials :

Companies use their reversed Internet domain name to begin their package names for example, com.example.mypackage for a package named mypackage created by a programmer at example.com.

Name collisions that occur within a single company need to be handled by convention within that company, perhaps by including the region or the project name after the company name (for example, com.example.region.mypackage).

È più di una pratica a ripetizione, è una buona pratica perché è uno spazio dei nomi completo e completamente specifico . Se c'erano due società denominate Acme e entrambi hanno scelto lo spazio dei nomi acme. , il loro codice sarebbe in conflitto. Ma solo una di queste aziende può possedere il dominio acme.com , in modo che possano utilizzare lo spazio dei nomi com.acme. .

L'inversione del nome di dominio consente un'architettura top-down. com conterrebbe il codice per le aziende (o chiunque possieda un proprio nome di dominio .com), e al di sotto di questo sarebbe il nome dell'azienda (dominio). Quindi, più in profondità all'interno di quella sarebbe la struttura dell'organizzazione e / o lo spazio dei nomi effettivo. Ad esempio, se si trattava di codice proveniente da una rete denominata internal.acme.com , questo dà a questo reparto il proprio sottospazio di com.acme .) Questa struttura top-down viene utilizzata in un numero delle applicazioni, inclusa l'amministrazione dei sistemi. (È simile alla ricerca inversa di indirizzi IP.)

Personalmente, lo uso per tutto il nuovo codice JavaScript che scrivo per la mia azienda. Assicura che il codice non possa mai entrare in conflitto con nessun altro codice, anche se in seguito scriverò lo stesso codice per un'altra azienda. Può rendere complicato l'accesso al codice (digitare com.digitalfruition. può essere un po 'troppo) ma può essere facilmente risolto con una chiusura e una variabile locale ( var DF = com.digitalfruition ).

    
risposta data 21.12.2012 - 22:48
fonte
13

È perché l'uso dei namespace riduce enormemente le possibilità di conflitti tra nomi e perché usare il tuo nome di dominio (che è già stato regolamentato) è un buon modo per creare uno spazio dei nomi globale .

Invertendo la parte del dominio nello spazio dei nomi, la rendi ordinabile; tutti i nomi che appartengono al tuo piccolo pezzo dell'universo dei nomi sono ordinati insieme.

E, ultimo ma non meno importante, il TLD .com è il TLD più popolare su Internet, quindi è utilizzato da più sviluppatori di software rispetto a qualsiasi altro TLD.

In ogni caso, la pratica è iniziata con Java, in cui ogni classe ha bisogno di avere il proprio file, e per giocare in un ecosistema più grande è stato introdotto lo schema del namespace globale per mantenere le classi facili da qualificare.

    
risposta data 21.12.2012 - 22:47
fonte
2

Endianness

Non sono un esperto di java, ma per quanto riguarda lo schema generale questa è solo un'altra permutazione di big-endian vs little-endian, metaforicamente parlando.

"Endianness" is sometimes used to describe the order of the components of a domain name, e.g. 'en.wikipedia.org' (the usual modern 'little-endian' form) versus the reverse-DNS 'org.wikipedia.en' ('big-endian', used for naming components, packages, or types in computer systems, for example Java packages, Macintosh ".plist" files, etc.). URLs can be considered 'big-endian', even though the host part could be a 'little-endian' DNS name.

In questo caso, è presumibilmente a fini organizzativi per consentire il raggruppamento naturale / ramificazione degli alberi. Mantiene le cose in ordine ad un livello più alto e scavi per dettagli più specifici.

L'alternativa sarebbe molto piatta e il gruppo significativo / potenzialmente utile dovrebbe essere interpretato rispetto all'essere intrinseco alla struttura.

    
risposta data 21.12.2012 - 22:50
fonte
0

Penso che un dettaglio minore non sia stato menzionato nelle altre risposte: il motivo per cui il TLD .com è il più popolare, è che nei primi giorni del Web, i browser Web come Netscape Navigator venivano "aggiunti automaticamente" .com se mancava nell'indirizzo (ad esempio se il nome-ricerca falliva). Quindi, se hai digitato "shareware", sarebbe stato esteso a " link " (o " link "; non ricordo i dettagli www). i domini .com sono probabilmente i più popolari.

    
risposta data 21.11.2014 - 02:17
fonte

Leggi altre domande sui tag