web-dev-qa-db-fra.com

Quelle convention de dénomination de paquet utilisez-vous pour les projets personnels / hobby en Java?

Je connais déjà la convention standard de dénomination du package Java) qui consiste à utiliser un nom de domaine pour créer un nom de package unique (c'est-à-dire package com.stackoverflow.widgets). Cependant, je n'ai jamais vu de recommandations sur la façon de choisir les noms de paquetages pour des projets personnels. Je suppose que c'est parce que c'est vraiment une question de goût personnel.

Alors, comment choisissez-vous des noms de paquetages pour des projets personnels qui ne seront jamais mis en production (vous pourriez expérimenter un nouveau cadre pendant votre temps libre). En supposant que vous n’ayez pas de site Web personnel dont vous pouvez utiliser le domaine pour créer la structure de votre paquet, que faites-vous (ou feriez-vous)? Avez-vous un système logique en place pour générer de nouveaux noms de paquet pour les projets de loisir, ou utilisez-vous simplement des noms de paquet à jeter simples comme mypackage?

Depuis que je suis juste curieux de voir ce que pensent différentes personnes à ce sujet, j'ai fait de ce wiki une communauté.

Personnellement, je n'y ai jamais vraiment réfléchi, mais je voulais jouer avec Wicket ce soir et je me suis dit que je n'avais pas une idée précise de la façon dont je voulais organiser mes projets de passe-temps. Une convention de désignation des packages distincte et distincte pour les projets de loisir (du moins à mon sens) serait un bon moyen de séparer clairement les codes personnels et les codes liés au travail.

Je pensais à une simple convention de nommage hiérarchique, pour conserver la source de mes projets personnels dans un seul dossier racine:

  • Utilisez myprojects comme dossier racine
  • Ajouter le nom du projet
  • Ajoutez tout nom de sous-paquet supplémentaire

Donc, mon projet Wicket serait dans le paquet myprojects.learningwicket et les tests unitaires seraient dans le package myprojects.learningwicket.tests (par exemple).

139
Mike Spross

Si vous ne faites que des projets personnels pour lesquels personne d'autre n'utilisera le code, vous pouvez alors créer un nom de package que vous aimez. Ne fabriquez pas quelque chose qui commence par com. ou net. ou un autre domaine de premier niveau, car cela impliquerait que vous possédiez le nom de domaine (par exemple, en utilisant com.john comme nom de votre paquet simplement parce que votre nom est John, ce n’est pas une bonne idée).

Si vous voulez donner le code à quelqu'un d'autre, vous devez utiliser un nom de package unique au monde, ce qui, selon les conventions Java) signifie que vous devez vous enregistrer et utiliser un nom de domaine.

47
Greg Hewgill

Je viens d'utiliser mes initiales: fg.nameofproject.etc

Cela réduit la frappe. Il peut être préfixé à tout moment avec sf.net ou com. ou org. ou com.google ..

Comme le projet est personnel, offrez-lui un traitement spécial, tout comme votre chemise-cadeau personnalisée fraîchement pressée: vous vous sentirez bien.

25
Florin

<sarcasm> Bah. Tout programmeur qui se respecte aurait son propre nom de domaine. C'est clairement une question piège. Tout le monde a son propre nom de domaine! </sarcasm> :-)

Ok, très sérieusement, l'achat d'un nom de domaine personnalisé est probablement l'option la plus simple. Pour environ 10 dollars par an, vous pouvez trouver des fournisseurs dignes de confiance pour héberger le domaine et transférer les emails.

20
James Schek
pmurray_at_bigpond_dot_com.project.package
20
paulmurray

Je stocke la plupart de mes projets de passe-temps dans Google Code. Je n'utilise donc que le site du projet comme nom de package: com.googlecode.donkirkby.someproject.

15
Don Kirkby

Je pense que vous avez tout réglé. La tentation d'éviter ici est de ne pas s'embarrasser du tout d'un nom de package. Il est facile de sauvegarder quelques frappes au clavier car "je suis en train d'écrire du code de test". Mais ensuite, le code devient utile, utile et volumineux, et vous réalisez que vous avez un bon départ pour ce qui peut être une bibliothèque ou une application de longue durée. Ce n'est peut-être pas une bibliothèque ou une application qui quitte votre réseau domestique, mais le fait est que vous n'avez pas pensé à l'avenir. C’est le fantôme de l’informatique au Danemark - pensez toujours à l’avenir, ne serait-ce qu’un tout petit peu.

La convention de dénomination que j'utilise pour mon code de passe-temps est très semblable à la vôtre. J'ai un répertoire de niveau supérieur nommé "futura" (de longues et ennuyeuses raisons pour lesquelles ce nom est apparu) auquel tout mon code est suspendu. J'essaie d'organiser mon code dans des bibliothèques de packages, même s'il peut s'agir d'une classe ou d'un package que je n'utilise jamais pour un autre projet. Je place toutes les applications (c'est-à-dire tout ce qui a un vide principal (String [] args) dans la classe) dans le dossier futura.app. *. J'essaie également d'imiter les noms de package de bibliothèque standard pour mon propre code Java, bien que dans quelques cas, j'ai enfreint la convention à cause de mes propres goûts (c'est-à-dire futura.inet pour Internet, pas simplement socket , code et futura.collections pour les choses non-util.) Pour paraphraser David Mamet: Toujours être générique. Toujours être générique!

D'après les soins que vous aviez l'habitude de poser à la question, je suppose que vous êtes également d'accord avec mon dernier point: vous n'avez pas à traiter le piratage amateur comme un projet d'entreprise, mais si vous apportez une partie de cette discipline au jeu à domicile, le passe-temps est d'autant plus gratifiant.

3
Jim Nelson

Mon nom: prj.project_name.

2
Amir Saniyan

je m'appelle anjan

généralement, j'utilise com.anjan

J'ai moi-même une entreprise imaginaire - parfois, je l'utilise

la tradition avec sourceforge (comme l'ont montré hibernate et d'autres packages) est net.sf. *

donc, selon votre humeur, vous pouvez y aller.

2
anjanb

J'utilise mon URL OpenID, puis j'ajoute le nom de mon projet. par exemple, com.myopenid.cd1.Twitter est le package racine d’un client Twitter que j’ai développé.

2
cd1

Je viens d'utiliser mon nom: nom.initials.xxx, en tant que Nice comprennent entre brièveté et évitement de collision. J'ai pensé que cela donnerait un espace de noms exempt de collision raisonnable si je décidais de publier le code publiquement. J'ai aussi un petit programme que j'ai écrit qui peut reconditionner des arborescences de répertoires entières, donc je me suis dit que si jamais je devais avoir besoin de reconditionner pour la publication, c'est assez simple ... donc je n'ai pas perdu trop de temps à dormir dessus.

Après le nom de famille.initials.xxx, j’utilise l’application pour les packages d’application, la lib pour les packages de bibliothèque et tst pour les tâches que je m’essaie purement.

1
Lawrence Dol

que pensez-vous de nom.nom.nom.projet ??? comme luz.marlon.project?

1
Marlon

J'ai pensé à poser la même question. Jusqu'ici, j'ai utilisé le préfixe com.tehvan, même si je n'ai pas de société.

0
tehvan