Por que o nome do pacote java deve ser minúsculo?

Na verdade, esta é uma questão completamente teórica. Mas é interessante porque a especificação java não permite letras de caracteres maiúsculas no pacote e faz com que escreva algo assim:

com.mycompany.projname.core.remotefilesystemsynchronization.* 

ao invés de

 com.myCompanyName.projName.core.remoteFileSystemSynchronization.* 

Diretamente do Oracle Docs

Os nomes dos pacotes são escritos em letras minúsculas para evitar conflito com os nomes de classs ou interfaces.

Mas é interessante porque a especificação java não permite letras de caracteres maiúsculas no pacote e faz com que escreva algo assim:

A especificação permite isso muito bem. É apenas uma convenção para usar todos os minúsculos.

Como diz gtgaxiola, isso evita conflito com nomes de tipos … em convenções de nomenclatura .NET isso acontece, o que leva a um conselho de que você não nomeia uma class da mesma forma que seu namespace . Claro, usar pacotes camelCase evitaria a colisão por completo.

Eu suspeito que a realidade é que não foi completamente considerado ao criar as convenções de nomenclatura de pacotes. Pessoalmente eu raramente acho que seja um problema – se eu acabar vendo um pacote com um elemento de “remotefilesystemsynchronization” então a capitalização não é a principal coisa que eu ficaria preocupado 🙂

É apenas outra convenção – Pode-se perguntar por que o nome da class sempre tem que começar com Capital ou o nome do método começa com checkbox pequena e, em seguida, com capa de camelo. Java não força você a usar dessa maneira. É só que um conjunto de regras sublinhadas ajuda a comunidade enorme como desenvolvedores Java a escrever código facilmente compreensível para a maioria que segue as convenções.

Nenhuma razão definida pode ser atribuída como tal. É apenas o que me senti bem ao escrever a convenção. Mas sim diretrizes definitivamente estariam lá antes de escrever convenções. Eu não quero dizer que é um trabalho caprichoso. As diretrizes podem ser que, apenas vendo elementos, poderíamos dizer se sua class, método ou pacote e tudo o que importa é – nas convenções, isso foi alcançado.

Intereting Posts