如果我没有与之关联的域名,该如何命名软件包?
因此,谈到软件包时,大多数Java资源都提到了" com.yourcompany.project"设置。但是,我没有在公司工作,也没有网站。是否有任何通用的命名约定?一个电子邮件地址,也许吗?
解决方案
使用顶级域名,例如" bernard"或者其他独特的域名。重要的是该域是唯一的,以便避免冲突,而不是它以真实的Internet顶级域(例如org或者com)开头。例如。
import java.util.*; import bernard.myProject.*; import org.apache.commons.lang.*;
在网上可以找到有关此主题的好的建议:"以相反的电子邮件地址开始软件包名称。[...]或者,将代码托管在一个站点中,这将为我们提供域名的一部分。"
为什么不注册域名?
它们相当便宜,这样做可以确保我们不会与其他任何人发生冲突(或者至少让我们满意,如果发生冲突,则是另一个人必须重写他们的代码)。
注册我们自己的名称,或者尝试编造一个名称,以后我们可以将其用作业务的基础。
bernard.surname.net
madeupname.net
每年的费用将少于10GBP。
就个人而言,我会选择虚构的名称方法,因为它看起来可能更专业(除非我们选择真正奇怪的东西)。
另一个优点是,许多域都将具有电子邮件功能,与[email protected]相比,它为我们提供了更好的电子邮件地址。
我们还可以做的是通过诸如DynDns(或者等效项之一)之类的服务注册域(实际上是子域),然后使用该域名。我们将是唯一的控制者,它是免费的且易于维护。目前,他们可以选择88个顶级域名(2008年10月)。
王朝
动态DNS服务
如果我们创建一个开源项目,则可以在Sourceforge中注册它并使用net.sourceforge.myproject。这在许多Java项目中很常见。一个示例是PMD http://pmd.sourceforge.net/。
对于我自己没有命名空间的个人工作,我会选择简单的东西,例如" org。<myname>。*"。
我去过几个写house java类的公司。通常,它们只是com.blah.blah.blah
,而无需考虑其背后是否有实际的域名。
恕我直言,最好的办法是不依赖任何外部信息,例如托管提供商或者公司(可以将其发布给开源社区),因为软件包级的重构不是很理想,尤其是在框架和库的情况下。我建议我们仔细,明确地选择项目名称,然后使用org。<项目名称>作为根软件包。
请注意,"反向域名"只是一种约定:非常有用,因为如果每个人都坚持使用反向域名,则可以避免冲突,但是我们不必遵循它。
只需选择一个可以合理确定其他人不会使用的名称,并且该名称不会被任何人注册为商标,因为这是我们实际上可能会遇到法律麻烦的一种方式。
这实际上意味着使用我们正在使用的免费服务的某种"子域"是一个相当糟糕的主意,例如deviantart或者dyndns或者免费邮件服务!因为这些域中的大多数(如果不是全部)都是商标用语,并且如果项目曾经广泛分布,则可能被视为侵犯了商标。仅仅因为他们允许我们使用该名称作为电子邮件地址(或者其他名称)并不意味着我们实际上可以将其用作其他任何内容,所以他们的EULA几乎可以肯定地将使用限制于此目的。
许多人拥有自己的网站和相对唯一的名称(或者登录名)。
如果名字叫Bernard Something,那么我们可以拥有BernardSomething.com,
使com.bernardsomething.xxxx(或者com.bsomething.xxx)成为用于个人代码的合法软件包名称恕我直言。
话虽这么说,如果项目名称是唯一的,则可能要在此之后命名包。
当然,如果我们还不拥有域名,请以名字为域名!