Javaパッケージcomおよびorg


回答:


113

Sunによると、パッケージはドメイン名の逆に基づいて名前空間を設定し、その後に適切と思われるものを追加する必要があります。ほとんどの企業または組織は.com、または.orgドメイン名を持っているため、ほとんどのパッケージはcom.またはで始まりますorg.Sun Code Conventionsから引用するには:

一意のパッケージ名のプレフィックスは、常にすべて小文字のASCII文字で記述され、トップレベルドメイン名のいずれかである必要があります。現在はcom、edu、gov、mil、net、org、または英語の2文字コードのいずれかです。 ISO規格3166、1981で指定された国を特定する。

パッケージ名の後続のコンポーネントは、組織独自の内部命名規則によって異なります。このような規則では、特定のディレクトリ名コンポーネントが部門、部門、プロジェクト、マシン、またはログイン名であることを指定できます。

そして、彼らが与える例は、あなたが会社のDNS名を使用することを意図していることをかなり明確にします:

com.sun.eng

com.apple.quicktime.v2

edu.cmu.cs.bovik.cheese

また、表示されますedu.net.アウトパッケージ野生では、彼らはあまり一般的ではあるが、同様。


3
会社がドメインを変更した場合はどうなりますか?
Leonardo Raele 2013年

4
@LeonardoRaele通常、この場合は苦痛の世界に入ります;-)より真剣に、2つのオプションがあります。すべてのクラスの名前を変更します。これは、コードが内部にある場合に機能するか、古い名前を使用したままにするかです。とにかくまだユニークです。
Paul Wagland 2013年

2
組織に所属していない、またはWebサイトを持っていない場合に最適な命名規則は何ですか?私はme.username以前に提案されたのを見たことがありますが、それが最高なのか唯一の標準なのかはわかりません。
アーロン・フランケ

2
@AaronFranke GitHubのユーザー名をドメインとして使用するのを見てきました。たとえば、com.guthub.pwagland.xxxの主な目的は、一意の名前を取得することです。これにより、変更する必要がなく、他の誰かが選択した名前と競合することはありません。
ポールワグランド

1
会社にwordpress.comとwordpress.orgの2つのドメインがある場合
Janac Meena

48

また、パッケージ名を逆インターネットドメイン名として表示することもできます(これは多くの場合、現実の世界でも当てはまります。たとえば、http://commons.apache.orgorg.apache.commonsと相関するを参照してください)。com(商用)及びorg(組織)そして、ここで実際にトップレベルドメイン名。

パッケージ名は一般的に、直面しているコードの製造元/ベンダーを識別するためだけのものです。


16
そして、パッケージ名の一意性を確保します。私はそれはそれを行うにはかなり賢い方法だと思います
するThorbjörnRavnアンデルセン

2
私は間違っているかもしれませんが、誰もがそれを使用するつもりなら、この時点でcomは不要に聞こえます。会社名だけを使いたい。私は、npmやcomposerのような他のパッケージングシステムのネーミングシステムを好みます。それらは「username / packageName」または類似のものを使用します。だから私はjavaで私のパッケージに 'username.packagename'と名前を付けます
OzzyTheGiant

9

通常com、パッケージに名前を付けるときに会社が使用し、comその後に会社名が続きます。たとえばcom.sun、JVMにパッケージがあるとします。

orgパッケージ接頭辞は、主などのapache、W3C、として、非営利団体、あるいはオープンソースコードのために使用されています


内部コードにはcomapanyの.com URLを使用し、公開されたコードには.orgを使用するという慣習は良い考えです。それが私がこの回答から要約したものです。
デニス

3
デニス、それは良い考えではないと思います。これは、コードをリリースするとパッケージ名が変更され、元の名前を使用している内部ソフトウェアが破損することを意味します。また、example.comとexample.orgが異なる会社によって所有されており、両方がJavaコードをリリースしようとすると、名前空間の衝突が発生します。
プロスキー2015年

3

パッケージの命名については、Oracleのドキュメントを参照してください

class / interface / annotations / etc標準の命名については、命名規則を参照してください

パッケージ名とクラスの標準構文:
<逆のドメイン>。<プロジェクト名>。<コントローラー/ dao / service / handlersなど>。<クラス>

example1:(ここではdomain:-"stackoverflow.com"、project:-"Test")
com.stackoverfllow.test.handler.TestHandler

例2:(ここではdomain:-"www.google.co.in"、project:-"My Proj")
in.co.google.myproj.controller.MainController

ただし、java。*、javax。*、sun。*などの予約済みドメインについては、oracleコミュニティから許可を得る必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.