因此,大多数 Java 资源在谈到包时都会提到com.yourcompany.project
设置。但是,我不在公司工作,也没有网站。是否有任何通用的命名约定?一个电子邮件地址,也许?
10 回答
使用像“bernard”这样的顶级域名或其他独特的域名。重要的部分是域是唯一的,这样可以避免冲突,而不是从真正的 Internet 顶级域开始,如 org 或 com。例如
import java.util.*;
import bernard.myProject.*;
import org.apache.commons.lang.*;
如果您创建一个开源项目,您可以在 Sourceforge 注册它并使用 net.sourceforge.myproject。这在许多 Java 项目中很常见。一个例子是 PMD http://pmd.sourceforge.net/。
在网上找到的关于这个主题的好建议:“用你的电子邮件地址开始你的包名,颠倒过来。[...]或者,将你的代码托管在一个可以为你提供他们域的一部分的站点上。”
为什么不注册一个域?
它们相当便宜,这样做可以保证您不会与其他任何人发生冲突(或者至少让您感到满意,即如果确实发生冲突,则必须由其他人重写他们的代码)。
要么注册你自己的名字,要么试着编一个你以后可以用作业务基础的名字。
bernard.surname.net
madeupname.net
这将使您每年花费不到 10 英镑。
就个人而言,我会选择虚构的名称方法,因为它可能看起来更专业(除非你选择一些非常奇怪的东西)。
另一个优势是许多域都带有电子邮件功能,为您提供比 bernard.surname@hotmail.com 更好的电子邮件地址。
请注意,“反向域名”只是一个约定:很有用,因为如果每个人都遵守它,它肯定会避免冲突,但您不必遵循它。
只需选择一个您可以合理确定没有其他人会使用并且没有被任何人注册为商标的名称- 因为这是您实际上可能陷入法律麻烦的一种方式。
这意味着使用您正在使用的免费服务的某种“子域”实际上是一个相当糟糕的主意,例如 deviantart 或 dyndns 或免费邮件服务!因为这些域中的大多数(如果不是全部)都是商标术语,并且如果您的项目得到广泛分发,则可能被视为违反商标。仅仅因为他们允许您将该名称用作电子邮件地址(或其他)并不意味着您可以将其用于其他任何用途 - 事实上,他们的 EULA 几乎可以肯定地将使用限制在一个目的上。
当我没有命名空间时,对于我自己的个人工作,我会选择一些简单的东西,比如org.<myname>.*
我曾在几家不同的公司工作,他们编写了内部 Java 类。通常他们只是com.blah.blah.blah
不考虑其背后是否有实际的域名。
恕我直言,最好不依赖任何外部信息,例如托管服务提供商或公司(它可以发布到开源社区),因为包级别的重构并不是很理想,尤其是在框架和库的情况下。我建议仔细且明确地选择您的项目名称,然后使用 org.<project name> 作为根包。
许多人拥有自己的网站和相对独特的名称(或登录名)。
如果您的名字是 Bernard Something,您可能拥有 BernardSomething.com,使 com.bernardsomething.xxxx(或 com.bsomething.xxx)成为个人代码的合法包名恕我直言。
话虽如此,如果您的项目名称是唯一的,您可能希望在此之后命名包。
当然,如果您还没有拥有域名,请在您的名字后获取域名!