Java包命名方案:TLD真的那么重要吗?

时间:2011-03-04 19:52:26

标签: java namespaces tld

仅仅是我,或者Java包命名约定中的TLD是否非常无关紧要?我的意思是,如果你在com.example.packageorg.example.package之间没有TLD而发生命名空间冲突,那么无论如何你都会对TLD产生混淆。为什么需要权衡命名空间冲突的混淆?当然,编译器吐出错误/警告比尝试编译某人导入了错误包的程序更快乐地跳出来?

仅仅是我在会议上的两分钱。坦率地说,你不会在组织之间发生名称空间冲突。和com。无论如何,两个具有相同域名但不同tld的公司不太可能写两个同名的java包。

7 个答案:

答案 0 :(得分:1)

并非com.org.对包名称有意义,只是“使用您公司的域名”是一个很好的,简单的经验法则。

答案 1 :(得分:1)

有时它可能很重要,但大部分都是关于声望而非实际工程原因。它可以与绘画角落里画家的签名相提并论,即“我创造了这个。”,当你表达你的关注和/或意见时,这些东西会让你感到非常强烈值得注意

作为一个例子,当来自Apache Software Foundation resignedJCP时,每个人都知道这对他们工作的直接影响,因为他们使用的所有外部第三方库都包含域名:拥有大量{的人{1}}进口知道他们应该真正为宣布打开耳朵并开始密切关注它,因为它最终会影响他们。

同样,您可以利用贵公司的良好声誉来宣传图书馆;如果我要从一些随机派对中为你宣传一组收藏库,哪一个听起来会更好,那个位于org.apache.*之下或者位于common.collect之下?

将域名部分添加到包中与实际操作几乎没有任何关系,它是关于承担责任并为您的行为和行为感到自豪。它是关于开放,关于共享,关于成为社区的一部分,关于在全球1300万左右的所有软件开发人员中

答案 2 :(得分:0)

我只是在编码软件时忽略它,但TLD确实有助于使软件包独一无二。

答案 3 :(得分:0)

就像你说的那样,这只是一个惯例。它的设计并不完美;域名可以转手,这也会导致冲突。

答案 4 :(得分:0)

如果您的软件包不是库(或者它们只是您自己公司的库),那么它们永远不会离开,因此您不必遵循任何软件包协议。事实上,在独立应用程序中,我只使用一个简短的包名称并将其中的所有内容粘贴在其中。如果它们使用相同的包声明,则可以简化从单独程序中传播或校验常用文件的过程。以下是我发布的问题:Generic Java Package Name

答案 5 :(得分:0)

没有

证明:存在另一种非常流行的语言,有很多库,都在简单的命名空间下。他们没有名字冲突的问题。

答案 6 :(得分:0)

我问了一个关于包名的问题,Jon Skeet(无论那个人是谁)有一个很好的评论说

来自:Hyphenated company name in Java packages

  

老实说,我希望Java没有   沿着这条路走下去   约定。我想知道有多少   名为" com"的目录或" org"   存在一个成员 - a   子目录更有意义   名。