Paquets Java com et org

126

Quelle est la signification des packages orget comen Java?

Gabriel
la source

Réponses:

113

Selon Sun , les packages doivent être espacés en fonction de l'inverse de votre nom de domaine, puis suivis de ce que vous jugez bon. La plupart des entreprises ou organisations ont un nom de domaine .comou .org, et par conséquent, la plupart des packages commencent par com.ou org.. Pour citer les conventions Sun Code :

Le préfixe d'un nom de package unique est toujours écrit en lettres ASCII tout en minuscules et doit être l'un des noms de domaine de premier niveau, actuellement com, edu, gov, mil, net, org ou l'un des codes anglais à deux lettres identifiant les pays comme spécifié dans la norme ISO 3166, 1981.

Les composants suivants du nom du package varient en fonction des conventions de dénomination internes d'une organisation. Ces conventions peuvent spécifier que certains composants de nom de répertoire sont des noms de division, de service, de projet, de machine ou de connexion.

Et les exemples qu'ils donnent montrent assez clairement que vous êtes censé utiliser le nom DNS de l'entreprise:

com.sun.eng

com.apple.quicktime.v2

edu.cmu.cs.bovik.cheese

Vous verrez également edu.et les net.paquets sur dans la nature aussi bien, même si elles sont moins fréquentes.

Paul Wagland
la source
3
Et si l'entreprise change de domaine?
Leonardo Raele
4
@LeonardoRaele Typiquement dans ce cas, vous entrez dans un monde de douleur ;-) Plus sérieusement, il y a deux options, renommer toutes les classes, qui peuvent fonctionner si le code est interne de toute façon, ou le laisser en utilisant l'ancien nom, car cela sera probablement toujours être unique de toute façon.
Paul Wagland
2
Quelle est la meilleure convention de dénomination lorsque vous ne faites pas partie d'une organisation ou n'avez pas de site Web? J'ai déjà vu des me.usernamesuggestions mais je ne sais pas si c'est la meilleure ou la seule norme.
Aaron Franke
2
@AaronFranke J'ai vu des gens utiliser leur nom d'utilisateur GitHub comme domaine, donc, par exemple: com.guthub.pwagland.xxx le but principal est d'obtenir un nom unique, afin que vous n'ayez pas à le changer, et il ne sera jamais en conflit avec le nom que quelqu'un d'autre a choisi.
Paul Wagland
1
Et si votre entreprise a 2 domaines, à savoir wordpress.com et wordpress.org
Janac Meena
48

Vous pouvez également voir les noms de paquets comme des noms de domaine Internet inversés (ce qui est souvent également vrai dans le monde réel, voir par exemple le org.apache.commonsqui est en corrélation avec http://commons.apache.org ). Le com(commercial) et org(l'organisation) sont ici alors en fait un domaine de premier niveau noms de .

Les noms de packages sont en général juste pour identifier le fabricant / vendeur du code auquel vous faites face.

BalusC
la source
16
Et pour garantir l'unicité du nom du package. Je pense que c'est une façon assez intelligente de le faire
Thorbjørn Ravn Andersen
2
Je me trompe peut-être, mais com semble inutile à ce stade si tout le monde va l'utiliser. Je préfère simplement utiliser le nom de l'entreprise seul. Je préfère le système de dénomination qu'ils ont pour d'autres systèmes d'empaquetage comme npm et composer. Ils utilisent 'username / packageName' ou quelque chose de similaire. Donc, je nommerais mes paquets en java comme 'username.packagename'
OzzyTheGiant
9

Il comest généralement utilisé par les entreprises pour nommer les packages, comsuivi du nom de l'entreprise. Par exemple, vous avez les com.sunpackages dans la JVM.

Le orgpréfixe de package est principalement utilisé par les organisations à but non lucratif ou pour le code open source, comme apache, w3c, etc.

Guillaume
la source
La convention d'utiliser l'URL .com d'une société pour le code interne et .org pour tout code rendu public est une bonne idée. C'est ce que j'ai résumé de cette réponse.
Dennis
3
Dennis, je ne pense pas que ce soit une bonne idée. Cela signifie que la publication du code modifierait les noms des packages et casserait le logiciel interne qui utilise les noms d'origine. En outre, il y aurait une collision d'espace de noms si example.com et example.org appartiennent à des sociétés différentes et que les deux souhaitent publier du code Java.
proski
3

Voir la documentation Oracle pour la dénomination des packages

Voir Conventions de dénomination pour la dénomination standard de classe / interface / annotations / etc

nom du package et syntaxe standard de classe:
<votre domaine à l'envers>. <nom du projet>. <controller / dao / service / handlers etc>. <votre classe>

Exemple 1: (ici domaine: - "stackoverflow.com", projet: - "Test")
com.stackoverfllow.test.handler.TestHandler

exemple2: (ici domaine: - "www.google.co.in", projet: - "My Proj")
in.co.google.myproj.controller.MainController

mais pour les domaines réservés comme java. *, javax. *, sun. *, etc., vous devez obtenir l' autorisation de la communauté oracle

Dharmendrasinh Chudasama
la source