Javaのパッケージ命名規則のポイントは何ですか?


14

Javaが(おそらく仮定の)ドメイン名の逆をパッケージの名前として使用する理由を理解していませんが、一部の人々が使用するドメイン名と所有している製品との間にはほとんど関係がありません。多くの開発者はドメインさえ持っていません。

この命名規則がある場合、その理由は何ですか?


ドメインがなくても、Javaランドではパッケージの命名にふりをするのが一般的です。例えば、あなたのケースで、あなたが使用するcom.louisrhys.xxx.yyyあなたが所有しているか否かlouisrhys.com
ウェイン・モリーナ

回答:


14

グローバルな一意性。社内プロジェクトを超えてコードを配布するすべての人、または少なくとも真面目な開発者がその規約を遵守している場合、プロジェクトに別のサードパーティライブラリを追加するときに名前の衝突が発生することはありません。Javaは当初、いつでもどこでも(インターネット経由のアプレットおよびリモートクラスローディングを介して)コードを展開するためのソリューションとして伝播されたことに留意してください。


3
Java 1.4では、Sunは名前空間を変更せずにオープンソースのApache XMLツールを使用しました。独自のアプリケーションで新しいバージョンを使用しようとすると、むしろ「おもしろい」ことになります。

3
Java was initially propagated as a solution for code deployment anywhere, anytime 現在のJavaとは対照的に?私はあなたのことは知りませんが、Java WebStartを使用して、内部ネットワーク内の何千ものPCにクライアント側のコードをデプロイするのにまだある程度成功しています。これにより、「早期にリリース、頻繁にリリース」がすべての人の痛みを大幅に軽減します。
maple_shaft

1
必ずしもそうではありません。最終的にはドメイン名が失われます。死ぬか、単に更新するのを忘れることによって。他の誰かがそれを購入し、気付かないうちにあなたと競合するJavaパッケージを出すことができます。また、誰かがあなたの前にドメインを所有し、あなたのコードと競合するコードを出す可能性もあります。
ケビン

@maple_shaft Javaアプレットの衰退以来、ほとんどのユーザーにとってはそうではありません。むしろ、アプリケーション(Qt、XUL、Electronなど)の単なる別のプラットフォームです。
user253751 16

12

ウィキペディアが被写体に言います、

「Java言語仕様は、同じ名前を持つ2つの公開パッケージの可能性を避けるために、パッケージの命名規則を確立しています。」


開発者が独自のドメイン名を持っていない場合、仕様にはどのような規則を使用するかが詳しく記載されていますか?
-FrustratedWithFormsDesigner


@MikeSeymour:それで...私たちはそれらの名前を付けることができますが、その場合はどうですか?やったー!:)
FrustratedWithFormsDesigner

1
@FrustratedWithFormsDesignerどんな場合でも好きな名前を付けることができます。他の人にソフトウェアを使用してもらいたい場合は、仕様に従って、実際のドメインがない場合は論理的でおそらく一意の名前空間を推測する必要があります。
ジェレミー

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