web-dev-qa-db-fra.com

Quelle est la convention pour les noms de packages Java sans association de domaine?

Je ne trouve pas de Q/A sur SO qui répond à ma question exacte , donc je pense que je postez-le et voyez ce qui revient.

En ce qui concerne la convention de dénomination pour Java, je comprends que c'est censé être le nom de domaine inverse: com.whatever.stuff Et j'obtiens les règles concernant les casse mixte, tirets, mots-clés, etc.

J'ai également lu la section 7.7 (Unique-Package-Names) de la spécification de langage Java. Pour autant que je sache, les règles de Java sont d'utiliser le domaine inverse pour assurer l'unicité ... et si vous n'en avez pas, allez en chercher un:

You form a unique package name by first having (or belonging to an organization that has) an Internet domainname, such as Sun.com. - Section 7.7

Donc, si je ne suis pas intéressé à débourser de l'argent pour un nom de domaine, je n'appartiens pas à une entreprise dont je peux utiliser le nom, y a-t-il une partie de la convention de nommage qui me manque qui devrait être suivie ? Je pense que je peux simplement le nommer quel que soit le nom unique que je ressens à ce stade, mais je me demandais simplement si je manquais quelque chose.

Note: Je voudrais publier mon package pour que d'autres développeurs l'utilisent, donc je ne voulais pas simplement faire quelque chose qui fonctionnait sur mon système, mais quelque chose de plus standard si possible.

J'ai ajouté la balise Android parce que les packages Java que je vais écrire vont être utilisés dans un Android = application, je ne savais pas s'il y avait des opinions différentes de Android développeurs.

40
Mike

Si vous allez distribuer beaucoup de choses, je vous suggère vraiment d'obtenir un nom de domaine. Une autre alternative serait cependant d'utiliser votre e-mail: par ex. [email protected] deviendrait com.gmail.bob. Ceci est moins courant que l'utilisation de noms de domaine mais est toujours fait par certains et garantit toujours l'unicité.

35
arshajii

Une convention consiste à utiliser le nom de domaine du fournisseur d'hébergement, par exemple.

com.github.myrepositoryname
net.sf.sourceforge.myproject
com.googlecode.myproject

Avantages:

Désavantages:

  • si vous décidez de changer de fournisseur, vous avez soit des structures de packages obsolètes, soit vous introduisez des modifications incompatibles en amont pour maintenir la source en ligne avec votre nouveau fournisseur.
27
Grundlefleck

Les noms de domaine peuvent être obtenus gratuitement. Par exemple, dyn.com propose des noms de domaine gratuits sous la forme "any.dyndns.org" sur http://free.domain.name/

5
GreyBeardedGeek

Si vous êtes le seul codeur, vous pouvez simplement utiliser votre nom. Je m'appelle Jannis Froese, donc j'utiliserais

jannisfroese.projectname.stuff

ou si vous voulez rester avec des noms de domaine "valides"

localhost.jannisfroese.projectname.stuff

(localhost est un domaine de premier niveau réservé)

Bien sûr, cela ne fonctionne que si votre nom est suffisamment unique, de sorte qu'une collision est assez peu probable

3
Jannis Froese

Dans un environnement professionnel, la convention consiste à utiliser le domaine inverse. Dans un environnement plus associé à vous-même, vous pouvez utiliser org.projectname.packagename.*.

C'est une convention, pas une règle dure et rapide. Vous êtes libre d'utiliser le style de nom de domaine que vous aimez.

1
Makoto