Por que tantos namespaces começam com com

45

Tenho notado que muitas empresas usam namespaces de "nome de domínio reverso" e estou curioso para saber onde essa prática se originou e por que ela continua. Ele simplesmente continua por causa da prática mecânica, ou existe um conceito de arquitetura excepcional que eu possa estar perdendo aqui?

Observe também questões como: link que tipo de resposta a minha pergunta, mas não 100%

(Se isso faz você se sentir melhor, estou realmente curioso para saber se devo usá-lo para meus esforços de namespacing de javascript, mas estou mais curioso sobre quando e por quê, e isso deve ajudar a me guiar na resposta do javascript, nota bene: "window")

Exemplo desta prática que se estende a pastas e arquivos:

    
por jcolebrand 21.12.2012 / 22:42
fonte

4 respostas

53

Reverse Domain Notation tem suas origens em Java, mas é amplamente usado em muitas plataformas, como Pacotes Android, Mac Pacotes do OS X, JavaScript, ActionScript e muito mais.

A prática é extremamente útil porque fornece um sistema descentralizado para software de namespacing. Não há necessidade de se inscrever em uma agência centralizada para um namespace; simplesmente use o nome de domínio que você possui (invertido) e gerencie isso em sua própria organização. Ao nomear pacotes como este, pode-se ter quase certeza de que o código não entrará em conflito com outros pacotes.

Tutoriais em Java da Oracle :

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).

É mais do que uma prática rotineira, é uma boa prática porque é um namespace completo e totalmente específico . Se houvesse duas empresas chamadas Acme e ambas escolhessem o namespace acme. , o código delas estaria em conflito. Mas apenas uma dessas empresas pode possuir o domínio acme.com , de modo que eles usem o namespace com.acme. .

A reversão do nome de domínio permite uma arquitetura top-down. com conteria código para empresas (ou qualquer pessoa que possua um nome de domínio .com) e, abaixo disso, nomes de empresas (domínio). Então, mais profundamente dentro disso, estaria a estrutura da organização e / ou o espaço de nomes real. (Por exemplo, se fosse um código de uma rede chamada internal.acme.com , isso daria a esse departamento seu próprio subespaço de com.acme .) Essa estrutura de cima para baixo é usada em um número de aplicações, inclusive na administração de sistemas. (É semelhante a pesquisas inversas de endereços IP.)

Pessoalmente, eu o uso para todo o novo código JavaScript que eu escrevo para minha empresa. Garante que o código nunca entrará em conflito com qualquer outro código, mesmo que eu escreva o mesmo código para outra empresa. Isso pode dificultar o acesso ao código (digitar com.digitalfruition. pode ser um pouco demais), mas isso pode ser facilmente contornado com um fechamento e uma variável local ( var DF = com.digitalfruition ).

    
por 21.12.2012 / 22:48
fonte
13

É porque usar namespaces reduz enormemente as chances de conflitos de nomes, e porque usar seu nome de domínio (que já foi regulado) é uma boa maneira de criar um namespace global .

Ao inverter a parte do domínio no namespace, você faz isso classificável; todos os nomes que pertencem ao seu pequeno pedaço do universo de namespace são classificados juntos.

E por último, mas não menos importante, o TLD .com é o TLD mais popular na Internet, por isso é usado por mais desenvolvedores de software do que qualquer outro TLD.

Em qualquer caso, a prática começou com Java, onde cada classe precisa ter seu próprio arquivo, e para jogar em um ecossistema maior, o esquema de namespace global foi introduzido para ajudar a manter as classes fáceis de serem qualificadas.

    
por 21.12.2012 / 22:47
fonte
2

Endianness

Eu não sou um especialista em Java, mas quanto ao padrão geral, esta é apenas uma outra permutação de big-endian vs little-endian, metaforicamente falando.

"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.

Neste caso, é presumivelmente para propósitos organizacionais permitir o agrupamento natural / ramificação de árvores. Ele mantém as coisas em um nível mais alto e você busca detalhes mais específicos.

A alternativa seria muito plana, e um agrupamento significativo / potencialmente útil teria que ser interpretado contra ser intrínseco à estrutura.

    
por 21.12.2012 / 22:50
fonte
0

Eu acho que um detalhe menor não foi mencionado nas outras respostas: A razão pela qual o TLD .com é o mais popular, é que nos primeiros dias da Web, navegadores da Web como o Netscape Navigator "auto-anexado" .com se estiver faltando no endereço (por exemplo, se a pesquisa de nome falhar). Portanto, se você digitar "shareware", ele será expandido para " link " (ou " link "; não me lembro do detalhe www). Os domínios .com provavelmente ainda são os mais populares.

    
por 21.11.2014 / 02:17
fonte