なぜ多くの名前空間がcomで始まるのか


45

多くの企業が「逆ドメイン名」の名前空間を使用していることに気づきました。そのプラクティスがどこから始まったのか、なぜ続くのか興味があります。それは単純な練習のために単に継続するのですか、それとも私がここで見逃しているかもしれない顕著なアーキテクチャの概念がありますか?

また、のような質問注意:https://stackoverflow.com/questions/189209/do-you-really-use-your-reverse-domain-for-package-naming-in-javaをその答えのようなもの、私の質問はありません100 %

(気分が良くなったら、javascriptのネームスペース作業にそれを使用すべきかどうか本当に興味がありますが、その時と理由についてはもっと興味があります。 bene: "window")

フォルダーとファイルに拡張するこのプラクティスの例: http://imgur.com/jtdXo


1
これは奇妙です、私はこれを見たことがありません。今、私は興味があります。
ジミーホファ

回答:


54

Reverse Domain NotationはJavaに起源を持っていますが、Androidパッケージ、Mac OS Xパッケージ、JavaScript、ActionScriptなど、多くのプラットフォームで広く使用されています。

このプラクティスは、ネームスペースソフトウェアに分散システムを提供するため、非常に便利です。名前空間の中央機関に申請する必要はありません。所有するドメイン名を使用して(逆に)独自の組織内で管理します。このようなパッケージに名前を付けることにより、コードが他のパッケージと競合しないことをほぼ確実にすることができます。

OracleのJavaチュートリアルから

企業は、反転したインターネットドメイン名を使用してパッケージ名を開始します。たとえば、example.comのプログラマーによって作成されたmypackageという名前のパッケージのcom.example.mypackageです。

単一の会社内で発生する名前の衝突は、会社内の慣例により、おそらく会社名の後に地域またはプロジェクト名を含めることによって処理する必要があります(たとえば、com.example.region.mypackage)。

完全な特定の名前空間であるため、単なる慣行ではなく、良い慣行です。Acmeという名前の2つの会社があり、両方が名前空間を選択したacme.場合、それらのコードは競合します。ただし、ドメインacme.comを所有できるのはそのうちの1社のみであるため、com.acme.ネームスペースを使用できます。

ドメイン名を逆にすると、トップダウンアーキテクチャが可能になります。com会社(または.comドメイン名を所有している人)のコードが含まれ、その下に会社(ドメイン)名が含まれます。次に、その中のさらに深いところに、組織の構造や実際の名前空間があります。(たとえば、internal.acme.comというネットワークからのコードである場合、この部門に独自のサブネームスペースを与えますcom.acme。)このトップダウン構造は、システム管理を含む多くのアプリケーションで使用されます。(IPアドレスの逆引きに似ています。)

個人的には、会社のために書くすべての新しいJavaScriptコードに使用します。後で別の会社に同じコードを記述した場合でも、コードが他のコードと競合しないことを保証します。コードへのアクセスが面倒になりますcom.digitalfruition.が(タイピングは少し多くなります)、クロージャーとローカル変数(var DF = com.digitalfruition)で簡単に回避できます。


Androidアプリのランダムパッケージ名を変更するか、そのドメインを購入することを検討する必要があります。:(
jadkik94

123ABC.comのような番号で始まる会社名を持つという問題を解決する方法を誰かが見つけたのか、Javaで始まるクラス名をJavaが許可しないこの場合、どの命名規則を使用すべきかと思います。数?!
ソリン14

1
@sorin-パッケージ名の関連部分の前にアンダースコアを付けます。例えば、com._123ABC。例docs.oracle.com/javase/tutorial/java/package/namingpkgs.html
cxw

13

これは、名前空間を使用すると、名前の競合の可能性が大幅に減少するため、およびドメイン名(既に規制されている)を使用してグローバル名前空間を作成するための良い方法だからです。

名前空間のドメイン部分を逆にすることにより、ソート可能にします。名前空間ユニバースの小さなチャンクに属するすべての名前が一緒にソートされます。

最後になりましたが、TLD .comはインターネット上で最も人気のあるTLDであるため、他のTLDよりも多くのソフトウェア開発者が使用しています。

いずれにせよ、プラクティスはJavaから始まりました。各クラスには独自のファイルが必要であり、より大きなエコシステムでプレイするために、クラスを簡単に修飾できるようにするためにグローバル名前空間スキームが導入されました。


厳密に施行されていますか?パッケージcom.xyzを作成しようとしたが、ドメインを所有していないと仮定すると、アンドロイドはそれを行うことを妨げますか?
VarunAgw

@VarunAgwいいえ、汚いプレイをして競合を強制できます。
マルタインピータース

競合以外では、小規模プロジェクトにOrgName.ProjectNameを使用する方が合理的です
VarunAgw

あなたは慣習に直面して飛行するでしょうが、それはあなたの呼びかけです。
マルタインピータース

2

エンディアンネス

私はJavaの専門家ではありませんが、一般的なパターンについては、これはビッグエンディアンとリトルエンディアンの比another的に言えば単なる置換です。

「エンディアン」は、ドメイン名のコンポーネントの順序を表すために使用されることがあります。たとえば、「en.wikipedia.org」(通常の現代の「リトルエンディアン」形式)と逆DNS「org.wikipedia.en」( 「ビッグエンディアン」。コンピュータシステムのコンポーネント、パッケージ、またはタイプの名前付けに使用されます(Javaパッケージ、Macintosh「.plist」ファイルなど)。ホスト部分が「リトルエンディアン」のDNS名であっても、URLは「ビッグエンディアン」と見なすことができます。

この場合、おそらく組織的な目的のために、自然なグループ化/ツリーの分岐を可能にします。物事をより高いレベルで整頓し、より具体的な詳細を掘り下げます。

代替案は非常にフラットであり、意味のある/潜在的に有用なグループ化は、構造に固有のものであると解釈される必要があります。


7
Golly、聞いたことがないエンディアンは...逆ドメイン名前空間のスキームを参照するために使用される
マルタインピータース

同僚が会話でそれを捨てて、いくつかの接線的な議論を生み出すまで、私もそうしませんでした。彼は(リンクされているように)ウィキペディアを参照したので、明らかに前代未聞ではありません。私はこの観点に対応するために文字通り心を少しリラックスさせなければなりませんでしたが、私はそれに耐えることができます。
エドヘイスティングス

3
ええ、このDNSエンディアンの議論は定期的に行われます。英国にある今や古くなった「ヤヌス」ネットワークは、その名前が逆方向であり、常にARPANetの群衆は物事を後退させたと言っていました。
ロスパターソン

3
@RossPatterson:ファイルシステム、オペレーティングシステム、ファセット分類システム、ライブラリファイリングシステム、電話番号、それらのほとんどは左側のルートから始まり、その後より具体的になります。ちなみに、ほとんどのDNSネームサーバー構成ファイルでさえ、そのようにしています。だから、私はヤヌスの群衆に同意するだろう。
ヨルグWミットタグ

1
@RossPatterson彼らの名前を考えると、ヤヌスが「正しい方法」と見なされるものについて意見を持っていることに驚いています。
TRiG 14年

0

私は他の回答ではマイナーな詳細は言及されていないと思います:.com TLDが最も人気のある理由は、Webの初期には、Netscape NavigatorのようなWebブラウザが「自動追加」.comの場合ですアドレスに欠落していました(名前検索が失敗した場合など)。したがって、「シェアウェア」と入力すると、「http://shareware.com」(または「http://www.shareware.com」。wwwの詳細は覚えていません)に展開されます。.comドメインはおそらく最も人気があります。

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