Como se deve separar as palavras nos nomes dos pacotes? Quais das seguintes opções estão corretas?
com.stackoverflow.my_package
(sublinhado)com.stackoverflow.my-package
(hífens)com.stackoverflow.MyPackage
(CamelCase)
Qual é o padrão geral?
java
naming-conventions
package
Jigar
fonte
fonte
com.stackoverflow.my.package
Respostas:
Aqui está o que o documento oficial das convenções de nomenclatura prescreve:
Referências
Observe que, em particular, qualquer coisa após o prefixo de domínio de nível superior não é especificado no documento acima. O JLS também concorda com isso, fornecendo os seguintes exemplos:
O seguinte trecho também é relevante:
Referências
fonte
Todos os três não são as convenções.
Use
com.stackoverflow.mypackage
.Os nomes dos pacotes não seguem a convenção de nomenclatura dos camelos, sublinhados ou hífens .
Além disso, o Google Java Style Guide especifica exatamente a mesma
com.stackoverflow.mypackage
convenção (ou seja ):fonte
Qualquer pessoa pode usar sublinhado _ (está tudo bem)
Ninguém deve usar hypen - (sua má prática)
Ninguém deve usar letras maiúsculas nos nomes dos pacotes (má prática)
OBSERVAÇÃO: Aqui "Bad Practice" é para tecnicamente você poder usá-lo, mas, convencionalmente, não é bom escrever.
Origem: Nomeando um Pacote (docs.oracle)
fonte
As convenções oficiais de nomenclatura não são tão rígidas, elas nem 'proíbem' a notação de caso de camelo, exceto o prefixo (
com
no seu exemplo).Mas eu pessoalmente evitaria letras maiúsculas
e hifenizações, números pares. Eu escolheriacom.stackoverflow.mypackage
como Bragboy sugeriu também.(hifenizações '-' não são legais nos nomes dos pacotes)
EDITAR
Interessante - a especificação da linguagem também tem algo a dizer sobre convenções de nomenclatura.
No Capítulo 7.7 Nomes de pacotes exclusivos , vemos exemplos com nomes de pacotes que consistem em letras maiúsculas (para que a notação CamelCase seja aceitável) e sugerem substituir a hifonação por um sublinhado ("mary-lou" -> "mary_lou") e prefixo java palavras-chave com sublinhado ("com.example.enum" -> "com.example._enum")
Mais alguns exemplos de letras maiúsculas nos nomes dos pacotes podem ser encontrados no capítulo 6.8.1 Nomes dos pacotes .
fonte
Os sublinhados parecem feios nos nomes dos pacotes. Pelo que vale, no caso de nomes compostos por três ou mais palavras, eu uso iniciais (por exemplo
com.company.app.ingresoegresofijo (ingreso/egreso fijo) -> com.company.app.iefijo
:) e, em seguida, documento a finalidade do pacote empackage-info.java
.fonte
A concatenação de palavras no nome do pacote é algo que a maioria dos desenvolvedores não faz.
Você pode usar algo como.
com.stackoverflow.mypackage
Consulte Declaração de Nome JLS
fonte