Quelle convention de nommage de paquets utilisez-vous pour les projets personnels / loisirs en Java?

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

Alors, comment choisissez-vous les noms de paquets 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 ne disposiez pas d’un site Web personnel dont vous pouvez utiliser le domaine pour créer la structure de votre paquet, que faites-vous (ou voudriez-vous faire)? 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 mypackage comme mypackage ?

Puisque je suis juste curieux de voir ce que les gens pensent de cela, j’ai fait de ceci un wiki de communauté.

Pour moi personnellement, je n’y ai jamais beaucoup réfléchi, mais je voulais jouer avec Wicket ce soir et je me suis rendu compte que je ne savais pas trop comment organiser mes projets de loisir. Une convention distincte de dénomination des packages pour les projets de loisirs (au moins dans mon esprit) constituerait un bon moyen de séparer clairement les codes personnels et professionnels.

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

  • Utiliser myprojects tant que dossier racine
  • Ajouter le nom du projet
  • Ajoutez des noms de sous-paquets supplémentaires

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

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

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

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 un régal personnel, tout comme votre chemise cadeau fraîchement pressée, vous vous sentirez bien.

 pmurray_at_bigpond_dot_com.project.package 

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 personnel! 🙂

Ok, en toute sérieux, 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 réputés pour héberger le domaine et transférer le courrier électronique.

Je stocke la plupart de mes projets de loisirs dans Google Code. Je me sers donc du site du projet en tant que nom de package: com.googlecode.donkirkby.someproject .

Je pense que vous avez réussi. La tentation d’éviter ici est de ne pas s’embêter avec un nom de paquet du tout. Il est facile d’économiser quelques touches car “je n’écris que du code de test”. Mais alors, le code devient bon et utile, et vous réalisez que vous avez un bon départ pour 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 danois de l’informatique – pensez toujours à l’avance, si ce n’est un petit peu.

La convention d’appellation que j’utilise pour mon code passe-temps ressemble beaucoup à la vôtre. J’ai un répertoire de haut niveau nommé “futura” (raisons longues et ennuyeuses pour lesquelles ce nom est apparu) dont tout mon code est bloqué. J’essaie d’organiser mon code dans des bibliothèques de paquets, 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 main vide (Ssortingng [] args) dans la classe) dans le dossier futura.app. J’essaie également d’imiter les noms de paquets de bibliothèque Java standard pour mon propre code, bien que dans quelques cas j’ai rompu la convention à cause de mes propres goûts (c’est à dire futura.inet pour Internet, pas simplement socket, code et futura.collections pour non -util stuff.) Pour paraphraser David Mamet: Toujours être générique. Toujours être générique!

D’après les soins dont vous avez fait preuve lors de la publication de la question, je pense que vous êtes également d’accord avec mon dernier point: vous n’avez pas à traiter le piratage amateur comme un projet d’entreprise. le hobby est d’autant plus gratifiant.

je m’appelle anjan

habituellement, j’utilise com.anjan

J’ai une société de fantasy à part entière – parfois je l’utilise

la tradition avec sourceforge (comme le montrent les paquets hibernate et autres paquets) est net.sf *

donc, en fonction de votre humeur, vous pouvez aller avec cela.

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

Mon nom: prj.project_name .

J’utilise juste mon nom: nom.initials.xxx, comme un bon compromis entre la brièveté et l’évitement des collisions. Je pensais que cela donnerait un espace de noms sans collision raisonnable si je décidais de publier publiquement le code. J’ai aussi un petit programme que j’ai écrit et qui peut reconditionner des arborescences entières de répertoires, donc je me suis dit que si je devais refaire un paquet pour publier, c’était assez indolore … donc je n’ai pas trop dormi dessus.

Après le nom de famille.initials.xxx, j’utilise soit l’application pour les packages d’application, lib pour les paquets de bibliothèque, et tst pour tout ce que j’expérimente.

Que pensez-vous de lastname.firstname.project ??? comme luz.marlon.project?

J’ai pensé à poser cette même question. Jusqu’à présent, j’ai utilisé le préfixe com.tehvan, même si je n’ai pas vraiment d’entreprise.