3

「TLD ファーストのドメインのような識別子」は一口ですが、私が思いつくのはそれだけです。

私はこれらが何年にもわたってさまざまな場所で使用されているのを見て、この規則の背後にある歴史/理由が何であるか疑問に思いました。

私は Java を使用していませんが、名前空間が次のように行われることが多いことを思い出してください。

uk.co.tophats.stitchkit

Mac OS X の「Launch Agent」の仕様ファイル:

ws.agile.1PasswordAgent.plist

Mac OS X の環境設定ファイル:

com.apple.iTunesHelper.plist

なぜTLDが最初なのですか?英国と米国の日付形式のような階層的なペダントリーですか?

4

6 に答える 6

4

Java の場合、パッケージはディレクトリ階層に直接対応しており、ディレクトリ階層が最も具体的なドメイン識別子ではなく、最も一般的なものに根ざしている方がはるかに理にかなっています。また、ディレクトリ階層を読み取るときは、上から下に読み取るのが最も一般的です。したがって、ドメイン コンポーネントの順序を反転させる規則は、そこでは理にかなっていると思います。

于 2010-09-06T12:45:29.570 に答える
2

Java やその他のプログラミング言語では、パッケージ識別子によって、プロジェクトのディレクトリ階層がどのようになっているかが決まります。

したがって、 と の 2 つのパッケージがある場合com.stackoverflow.servercom.stackoverflow.client次のディレクトリ レイアウトになります。

com/
   stackoverflow/
      client/
      server/

これは適切で論理的ですが、逆の場合は次のようになります。

client/
   stackoverflow/
      com/
server/
   stackoverflow/
      com/

これは非現実的です。

于 2010-09-06T12:47:20.000 に答える
1

これは、グローバルに一意の名前をすべての名前空間のプレフィックスとして使用し、すべての名前空間をグローバルに一意の名前に限定する方法です。

于 2010-09-06T12:46:47.150 に答える
1

科学的には、情報の順序付けとグループ化を容易にするために、表記法は通常、情報の最上位ビットから開始されます。TLD はドメイン構造のルートであり、情報の最上位ビットです。したがって、このようにパッケージを構成することは理にかなっています。もちろん、それがcom.example.mypackageexample.com.mypackageかは関係ありません。しかし、SUN はより科学的な方法を選択することにしました。

日付形式に関しては、「交換形式」を次のように記述しているISOがあることに注意して ください。

ですから、ここから見て「間違った」表記をしているのはDNSシステムそのものです。しかし、彼らはURLの解析のために全体を最適化しようとしたと思います(たとえば、最初に「www」でWebサーバーを示します)

于 2010-09-06T13:30:04.630 に答える
0

少し主観的です。のような慣例に慣れている"stackoverflow.com"と、一体何のことだろうと不思議に思うかもしれません"com.apple"。または、長年の経験を持つプログラマーになることも"System.out"できます。

com.applecom「ドメインを調べて、この中を探して」と言っているようなものappleです。

apple.comは、 「ドメインapple内にある を探してください」と言っているようなものです。com

そのため、使用している環境/状況にすべて依存します。ちょうど私の2セント!

于 2010-09-06T12:41:13.510 に答える
0

いいえ、衒学ではありません。名前空間を作成することです。

他のサードパーティの開発者/プログラム/などが存在する可能性があります。また、iTunesHelper.plist または SQLRunner.java クラスを作成することもできます。これらに独自の名前空間 (ドメイン名など) をプレフィックスとして付けて、合理的に一意の名前を作成するので、com.oracle.SQLRunner.java は異なり、org.postgresql.SQLRunner.java と衝突しません。

于 2010-09-06T12:57:21.677 に答える