我无法在SO上找到回答我的完全问题的问答,所以我想我会发布它并看看会有什么回复。
就Java包的命名约定而言,我理解它应该是反向域名:com.whatever.stuff
并且我得到的规则没有混合大小写,连字符,关键字等。
我还阅读了Java语言规范的7.7节(Unique-Package-Names)。据我所知,Java的规则是使用反向域来确保唯一性......如果你没有,请去获取一个:
You form a unique package name by first having (or belonging to an organization that has) an Internet domainname, such as sun.com.
- 第7.7节
因此,如果我对为域名支付费用不感兴趣,我不属于我可以背负的名称的公司,是否存在我缺少的命名约定的任何部分应该遵循?我想我可以直接命名它,不管我现在感觉到什么名字,但我只是想知道我是否遗漏了任何东西。
注意:我想发布我的软件包供其他开发人员使用,所以我不想只做一些在我的系统上运行的东西,但如果可能的话就更标准。
我添加了android标签,因为我要编写的java包将用于Android应用程序,不确定Android开发人员是否有不同意见。
答案 0 :(得分:34)
如果你要分发很多东西,我真的建议你买一个域名。然而,另一种选择是使用您的电子邮件:例如bob@gmail.com
将成为com.gmail.bob
。这比使用域名少见,但仍由一些人完成,仍然保证了唯一性。
答案 1 :(得分:27)
一种惯例是使用托管服务提供商的域名,例如
com.github.myrepositoryname
net.sf.sourceforge.myproject
com.googlecode.myproject
优点:
缺点:
答案 2 :(得分:5)
域名可以免费提供。 例如,dyn.com在http://free.domain.name/提供“whatever.dyndns.org”形式的免费域名
答案 3 :(得分:2)
如果您是唯一的编码员,您可以使用您的名字。 我叫Jannis Froese,所以我会用
jannisfroese.projectname.stuff
或者如果您希望使用“有效”域名
localhost.jannisfroese.projectname.stuff
(localhost是一个保留的顶级域名)
当然,这只有在您的名字足够独特时才有效,因此碰撞不太可能
答案 4 :(得分:1)
在专业环境中,惯例是使用反向域。在与您自己更相关的环境中,您可以使用org.projectname.packagename.*
。
这是一项惯例,而不是一项严格的规则。您可以自由使用您喜欢的任何域命名方式。