Quel est l'intérêt de la convention de nommage des packages Java?

14

Je ne comprends pas pourquoi Java utilise l'inverse d'un nom de domaine (probablement hypothétique) comme nom d'un package, alors qu'il n'y a généralement pas de lien entre le nom de domaine que certaines personnes utilisent et les produits dont elles disposent. Beaucoup de développeurs n'ont même pas de domaine.

Quelles sont les raisons de cette convention de dénomination, le cas échéant?

Louis Rhys
la source
Même sans domaine, il est courant en Java-land de prétendre que vous le faites pour le nommage des packages. Par exemple, dans votre cas, vous utiliseriez com.louisrhys.xxx.yyyque vous soyez propriétaire ou nonlouisrhys.com
Wayne Molina

Réponses:

14

Unicité globale. Si tout le monde, ou du moins les développeurs sérieux qui distribuent leur code au-delà des projets internes, adhère à cette convention, il ne se produira jamais que des conflits de noms se produisent lorsque vous ajoutez une autre bibliothèque tierce à votre projet. Gardez à l'esprit que Java a été initialement propagé comme une solution pour le déploiement de code n'importe où, n'importe quand (via des applets et un chargement de classe à distance sur Internet).

Kilian Foth
la source
3
En Java 1.4, Sun a utilisé des outils Apache XML open source sans modifier l'espace de noms. Rendu plutôt "intéressant" d'essayer d'avoir une version plus récente dans vos propres applications.
3
Java was initially propagated as a solution for code deployment anywhere, anytime Par opposition à ce que Java est maintenant? Je ne sais pas pour vous mais j'utilise toujours avec succès Java WebStart pour déployer le code côté client sur des milliers de PC dans un réseau interne. Cela rend "Release Early, Release Often" beaucoup moins pénible pour tout le monde.
maple_shaft
1
Pas nécessairement vrai. Vous finirez par perdre un nom de domaine; que ce soit en mourant ou en oubliant simplement de le renouveler. Quelqu'un d'autre pourrait l'acheter et, sans s'en rendre compte, mettre un paquet Java en conflit avec le vôtre. Et il y a aussi la possibilité que quelqu'un possède le domaine avant vous et mette du code avec lequel votre code entre en conflit.
Kevin
@maple_shaft Cela n'a pas été le cas pour la plupart des utilisateurs depuis le déclin des applets Java. Il s'agit plutôt d'une autre plate-forme d'applications (comme, par exemple, Qt ou XUL ou Electron).
user253751
12

Comme le dit Wikipedia sur le sujet,

"La spécification du langage Java établit des conventions de dénomination des packages pour éviter la possibilité que deux packages publiés aient le même nom."

LaLeX
la source
La spécification détaille-t-elle la convention à utiliser si le développeur n'a pas son propre nom de domaine?
FrustratedWithFormsDesigner
@FrustratedWithFormsDesigner: Non, ce n'est pas le cas .
Mike Seymour
@MikeSeymour: Alors ... nous pouvons les nommer comme nous voulons dans ce cas? Woohoo! :)
FrustratedWithFormsDesigner
1
@FrustratedWithFormsDesigner Vous pouvez les nommer comme vous le souhaitez dans tous les cas. Si vous souhaitez que d'autres personnes utilisent votre logiciel, vous devez suivre les spécifications et déduire un espace de noms logique et probablement unique si vous n'avez pas de domaine réel.
Jeremy