Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';TLD第一类域标识符的意义是什么?_Java_Macos_Namespaces_Naming Conventions_Convention - Fatal编程技术网

Java 什么';TLD第一类域标识符的意义是什么?

Java 什么';TLD第一类域标识符的意义是什么?,java,macos,namespaces,naming-conventions,convention,Java,Macos,Namespaces,Naming Conventions,Convention,“TLD first domain-like identifiers”(TLD第一个类域标识符)是一个很好的例子,但我只能想到这些 多年来,我在不同的地方看到了这些应用,我想知道这个惯例背后的历史/原因是什么,因为你可能会认为有一种真正的方式来提及一个领域,这是可以原谅的 我不使用Java,但我回想起来,在我四处闲逛时,名称空间通常是这样做的: uk.co.tophats.stitchkit Mac OS X上“启动代理”的规范文件: ws.agile.1PasswordAgent.plist

“TLD first domain-like identifiers”(TLD第一个类域标识符)是一个很好的例子,但我只能想到这些

多年来,我在不同的地方看到了这些应用,我想知道这个惯例背后的历史/原因是什么,因为你可能会认为有一种真正的方式来提及一个领域,这是可以原谅的

我不使用Java,但我回想起来,在我四处闲逛时,名称空间通常是这样做的:

uk.co.tophats.stitchkit

Mac OS X上“启动代理”的规范文件:

ws.agile.1PasswordAgent.plist

Mac OS X上的首选项文件:

com.apple.iTunesHelper.plist


为什么TLD是第一个?这只是像英国和美国的日期格式那样的等级制迂腐吗?

有点主观。你可以习惯像
“stackoverflow.com”
这样的惯例,并且想知道这一切
“com.apple”
到底是怎么回事。或者你可以是一个有多年经验的程序员,像
“System.out”
这样的东西对你来说可能是最自然的事情

com.apple
就像说“查看
com
域,在这个域中,查找
apple

apple.com
就像说“查找
apple
,可以在
com
域中找到”


因此,这完全取决于您使用的环境/情况。就我的两分钱

对于Java来说,包直接对应于目录层次结构,而将目录层次结构植根于最通用的域标识符(而不是最具体的域标识符)更有意义。此外,在读取目录层次结构时,最常见的是从上往下读取。因此,我想说,翻转域组件顺序的约定在这里是有意义的。

这是一种使用全局唯一名称作为所有名称空间前缀的方法,从而使所有名称空间对全局唯一名称保持私有。

在Java和其他编程语言中,包标识符指示项目的目录层次结构的方式

因此,如果您有两个包
com.stackoverflow.server
com.stackoverflow.client
,您将得到以下目录布局:

com/
   stackoverflow/
      client/
      server/
这是好的和合乎逻辑的,而反过来会给你

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

这是不合法的。

不,这不是迂腐,而是创建一个名称空间

可能还有其他三方开发者/程序等也可以创建iTunesHelper.plist 或者一个SQLRunner.java类。您可以使用自己的名称空间作为前缀,例如域名
为了创建一个合理唯一的名称,使com.oracle.SQLRunner.java与sience中的org.postgresql.SQLRunner.java不冲突,符号通常以最重要的信息位开始,以便于对信息进行排序和分组。TLD是域结构的根,因此是最重要的信息位。因此,以这种方式构造包是有意义的。当然,不管是com.example.mypackage还是example.com.mypackage。但孙决定选择更科学的方式

关于日期格式,请注意,有一种方法将“交换格式”描述为:YYYY-MM-DD
这是相同的计划,因为年份是最重要的部分,其次是月份和日期


因此,从这一点来看,使用“错误”符号的是DNS系统本身。但我认为他们试图优化url解析的整个过程(例如,首先是“www”,表示Web服务器)

我知道名称空间的好处,问题在于单元的顺序(例如,com优先):-)将最重要的单元放在左边是一个实际的惯例。例如,在电话号码、数字系统、文件系统层次结构中,大多数分类系统是从左到右的(虽然DNS不是。)+1,因为:“……目录层次结构的根是最一般的,而不是最具体的…”顺便说一句,我认为它是“反向域表示法”但根据这个维基百科页面:它被称为“反向域名系统”。这适用于.class文件,而不是源文件。您可以将源代码组织为com/stackoverflow/client,但将client.stackoverflow.com编写为包。大多数IDE都会抱怨,但不管怎样编译。。。没有好的实践,但很好的了解。