2010-09-06 56 views
3

「頂級域名第一類標識符」很滿意,但這就是我所能想到的。TLD-first-like-like標識符有什麼意義?

我見過這些在不同的地方,多年來使用,想知道這個約定背後的歷史/原因是,因爲你可能在想,有提域唯一正確的方法被原諒。

我不使用Java,但我從戳周圍的命名空間經常這樣做回顧:

uk.co.tophats.stitchkit

的「啓動規範文件代理」在Mac OS X:

ws.agile.1PasswordAgent.plist

首選項在Mac OS X檔案:

com.apple.iTunesHelper.plist

爲什麼TLD第一?它只是像英國和美國的日期格式一樣的層級式?

+1

順便說一句,我認爲它是「反向域符號」,但根據這個維基百科頁面: http://en.wikipedia.org/wiki/Reverse-DNS它被稱爲「反向域名系統」。 – 2010-09-06 13:20:43

回答

4

對於Java的情況下,包直接對應於目錄層,它使目錄層次結構,以在最一般的紮根,而不是最具體,域標識更爲明智。另外,讀取目錄層次結構時,最常見的是從上到下讀取它。所以我會說翻轉域組件順序的慣例在那裏很有意義。

+0

對此有+1:「......對於目錄層次結構根植於最一般的而非最具體的情況下更爲合理......」 – jensgram 2010-09-06 13:07:04

0

這是一個有點主觀的。你可以習慣於像"stackoverflow.com"這樣的約定,並想知道這東西是什麼。或者你可以成爲一名有着多年經驗的程序員,像"System.out"這樣的東西對你來說可能是最自然的事情。

com.apple就像是說「看看com域,在這裏面,尋找apple」。

apple.com就像是說「尋找apple,它可以在com域中找到」。

因此,一切都取決於你所使用的環境/局勢。只是我的兩分錢!

1

其採用全球唯一的名稱作爲前綴所有的命名空間,從而保持所有的命名空間私有的全局唯一名稱的方式。

2

在Java等編程語言,包標識符決定了項目的目錄層次結構如何。

所以,如果你有兩個包com.stackoverflow.servercom.stackoverflow.client,你會擁有以下的目錄佈局:

com/ 
    stackoverflow/ 
     client/ 
     server/ 

這是很好的和邏輯的,而反過來會給你

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

這是不實用的。

+2

這適用於.class文件,而不適用於來源。您可以將源代碼組織爲com/stackoverflow/client,但將package.stackoverflow.com編寫爲包。大多數IDE會抱怨,但無論如何編譯...沒有好的做法,但很好知道。 – PeterMmm 2010-09-06 13:49:21

+0

+1,不知道 – Giacomo 2010-09-06 16:16:45

0

不,這不是瑣事,它是創建一個名稱空間。

可能還有其他3方開發者/程序/等。也可以創建一個iTunesHelper.plist 或SQLRunner.java類。您用自己的名稱空間加上前綴,例如您正在訪問的域名 這麼com.oracle.SQLRunner.java是不同的,並且不與org.postgresql.SQLRunner.java

+0

我知道命名空間的好處,它是有問題的單位的順序(例如com爲先):-) – xyz 2010-09-06 13:03:10

+0

這是一個實用的慣例,將最重要的單位放在左邊。我們在例如電話號碼,數字系統,文件系統層次結構,大多數分類系統從左到右(儘管DNS不)。 – nos 2010-09-06 13:18:01

1

在sience交鋒建立了一個相當獨特的名稱,符號,通常開始的最顯著位信息,使信息的排序和分組更容易。頂級域名是域名結構的根源,因此也是最重要的信息。因此,以這種方式構建包是有意義的。當然,不要緊,如果它是com.example.mypackageexample.com.mypackage。但是SUN決定更喜歡更科學的方式。

關於日期格式,要知道,有一個ISO描述一個「交換格式」爲:YYYY-MM-DD
這是相同的計劃,因爲這一年是最顯著的部分,其次是月份和日期。

所以,從這一點來看,使用「錯誤」符號的人是DNS系統本身。但我認爲他們試圖優化整個事件來解析一個url(例如「www」,首先表示一個WebServer)