仅仅是我,或者Java包命名约定中的TLD是否非常无关紧要?我的意思是,如果你在com.example.package
和org.example.package
之间没有TLD而发生命名空间冲突,那么无论如何你都会对TLD产生混淆。为什么需要权衡命名空间冲突的混淆?当然,编译器吐出错误/警告比尝试编译某人导入了错误包的程序更快乐地跳出来?
仅仅是我在会议上的两分钱。坦率地说,你不会在组织之间发生名称空间冲突。和com。无论如何,两个具有相同域名但不同tld的公司不太可能写两个同名的java包。
答案 0 :(得分:1)
并非com.
或org.
对包名称有意义,只是“使用您公司的域名”是一个很好的,简单的经验法则。
答案 1 :(得分:1)
有时它可能很重要,但大部分都是关于声望而非实际工程原因。它可以与绘画角落里画家的签名相提并论,即“我创造了这个。”,当你表达你的关注和/或意见时,这些东西会让你感到非常强烈值得注意
作为一个例子,当来自Apache Software Foundation resigned的JCP时,每个人都知道这对他们工作的直接影响,因为他们使用的所有外部第三方库都包含域名:拥有大量{的人{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 子目录更有意义 名。