Qual convenção de nomenclatura de pacotes você usa para projetos pessoais / hobby em Java?

Eu já estou familiarizado com a convenção padrão de nomenclatura de pacotes Java de usar um nome de domínio para criar um nome de pacote exclusivo (isto é, pacote com.stackoverflow.widgets ). No entanto, nunca vi nenhuma recomendação sobre como escolher nomes de pacotes para projetos pessoais. Eu suponho porque isso é porque isso é realmente uma questão de gosto pessoal.

Então, como você escolhe nomes de pacotes para projetos pessoais que nunca serão produzidos (você pode estar experimentando um novo framework em seu tempo livre). Supondo que você não tenha um site pessoal cujo domínio você possa usar para criar sua estrutura de pacotes, o que você faz (ou faria)? Você tem um sistema lógico para gerar novos nomes de pacotes para projetos de hobby ou usa apenas nomes simples de pacotes mypackage como mypackage ?

Desde que eu estou apenas curioso para ver o que os pensamentos das pessoas são diferentes sobre isso, eu fiz isso um wiki da comunidade.

Para mim, pessoalmente, eu nunca pensei muito sobre isso, mas eu queria brincar com a Wicket hoje à noite e me ocorreu que eu não tenho uma ideia clara de como eu quero organizar meus projetos de hobby. Uma convenção de nomenclatura de pacotes separada e distinta para projetos de hobby (na minha opinião, pelo menos) serviria como uma boa maneira de manter o código pessoal e relacionado ao trabalho claramente separado um do outro.

Eu estava pensando em uma convenção de nomenclatura hierárquica simples, para manter a fonte dos meus projetos pessoais em uma única pasta raiz:

  • Use myprojects como a pasta raiz
  • Anexar o nome do projeto
  • Adicione quaisquer nomes adicionais de subpacote

Assim, meu projeto Wicket estaria no pacote myprojects.learningwicket e testes de unidade estariam no pacote myprojects.learningwicket.tests (por exemplo).

Se você está apenas fazendo projetos pessoais, onde ninguém mais usará o código, você pode criar um nome de pacote que você goste. Não invente algo que comece com o com. ou net. ou outro domínio de nível superior, porque isso implicaria que você possui o nome de domínio (isto é, usando com.john como seu nome de pacote apenas porque seu nome é John não é uma boa idéia).

Se você for dar o código a qualquer outra pessoa, você deve usar um nome de pacote globalmente exclusivo, que de acordo com as convenções Java significa que você deve registrar e usar um nome de domínio.

Eu apenas uso minhas iniciais: fg.nameofproject.etc

Reduz a digitação. Pode ser prefixado a qualquer momento com sf.net ou com. ou org. ou com.google ..

Como o projeto é pessoal, é especial, assim como sua camisa de presente personalizada recém-passada – vai se sentir bem.

 pmurray_at_bigpond_dot_com.project.package 

Bah. Qualquer programador que se preze teria seu próprio nome de domínio. Esta é claramente uma questão capciosa. Todo mundo tem seu próprio nome de domínio pessoal! 🙂

Ok, com toda a seriedade, a compra de um nome de domínio personalizado é provavelmente a opção mais fácil. Por cerca de US $ 10 por ano, você pode encontrar provedores confiáveis ​​para hospedar o domínio e encaminhar e-mails.

Eu armazeno a maioria dos meus projetos de passatempo no Google Code, então eu apenas uso o site do projeto como o nome do pacote: com.googlecode.donkirkby.someproject .

Eu acho que você deu certo. A tentação de evitar aqui é não se incomodar com o nome do pacote. É fácil salvar algumas teclas porque “estou apenas escrevendo um código de teste”. Mas o código fica bom, útil e grande, e então você percebe que tem um começo sólido para o que pode ser uma biblioteca ou aplicativo de longa duração. Pode não ser uma biblioteca ou um aplicativo que sai da sua rede doméstica, mas o ponto é que você não pensou no futuro. Esse é o fantasma da ciência da computação na Dinamarca – pense sempre no futuro, mesmo que seja só um pouquinho.

A convenção de nomenclatura que uso para o meu código de hobby é muito parecida com a sua. Eu tenho um diretório de nível superior chamado “futura” (razões longas e chatas por que esse nome surgiu) de que todo o meu código fica pendente. Eu tento organizar meu código em bibliotecas de pacotes, mesmo que possa ser uma class ou um pacote que eu nunca uso para outro projeto. Eu coloco todos os aplicativos (isto é, qualquer coisa que tenha um void main (String [] args) na class) na pasta futura.app. *. Eu também tento imitar os nomes padrão do pacote da biblioteca Java para o meu próprio código, embora em alguns casos eu tenha quebrado a convenção por causa dos meus próprios gostos (ie futura.inet para Internet, não apenas soquete, código e futura.collections para não -util stuff.) Parafraseando David Mamet: Sempre ser genérico. Seja sempre genérico!

Dos cuidados que você usou para postar a pergunta, eu suspeito que você também concorda com o meu último ponto: você não tem que tratar o hobbyist hacking como um projeto de nível empresarial, mas se você trouxer um pouco dessa disciplina para o jogo em casa, o passatempo é ainda mais recompensador.

meu nome é anjan

normalmente, eu uso com.anjan

Eu tenho uma empresa de fantasia minha – às vezes eu uso isso

a tradição com o sourceforge (como o hibernate e outros pacotes mostraram) é net.sf. *

então, dependendo do seu humor, você pode ir com isso.

Eu uso minha URL OpenID e, em seguida, acrescento o nome do meu projeto. por exemplo, com.myopenid.cd1.twitter é o pacote raiz de um cliente do Twitter que tenho desenvolvido.

Minha nomenclatura: prj.project_name .

Eu apenas uso meu nome: surname.initials.xxx, como um bom compreendem entre brevidade e evitação de colisão. Imaginei que isso daria um namespace livre de colisão razoável, caso eu decidisse publicá-lo publicamente. Eu também tenho um pequeno programa que eu escrevi, que pode reempacotar trees inteiras de diretório, então imaginei que eu deveria precisar reempacotar para publicação, é bem indolor … então eu não perdi muito tempo com isso.

Depois do surname.initials.xxx, eu uso um aplicativo para pacotes de aplicativos, lib para pacotes de bibliotecas e outras coisas que estou experimentando.

o que você pensa sobre lastname.firstname.project ??? como luz.marlon.project?

Eu pensei em fazer essa mesma pergunta. Até agora eu usei o prefixo com.tehvan, embora eu não tenha uma empresa.