【发布时间】:2010-09-15 00:41:08
【问题描述】:
所以大多数 Java 资源在谈到包时都会提到 com.yourcompany.project 设置。但是,我不在公司工作,也没有网站。是否有任何通用的命名约定?一个电子邮件地址,也许?
【问题讨论】:
标签: java namespaces packages
所以大多数 Java 资源在谈到包时都会提到 com.yourcompany.project 设置。但是,我不在公司工作,也没有网站。是否有任何通用的命名约定?一个电子邮件地址,也许?
【问题讨论】:
标签: java namespaces packages
使用像“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/。
【讨论】:
在 web 上找到关于这个主题的好建议:“用你的电子邮件地址开始你的包名称,颠倒。[...]或者,将你的代码托管在一个网站上,这会给你一个他们的域名。”
【讨论】:
请注意,“反向域名”只是一个约定:很有用,因为如果每个人都遵守它,它肯定会避免冲突,但您不必遵循它。
只需选择一个您可以合理确定其他人不会使用且未被任何人注册为商标的名称 - 因为这是您真正可能陷入法律麻烦的一种方式。
这意味着实际上使用您正在使用的免费服务的某种“子域”是一个相当糟糕的主意,例如 deviantart 或 dyndns 或免费邮件服务!因为这些域中的大多数(如果不是全部)都是商标术语,并且如果您的项目得到广泛分发,则可能被视为违反商标。仅仅因为他们允许您将该名称用作电子邮件地址(或其他)并不意味着您可以将其用于其他任何事情 - 事实上,他们的 EULA 几乎可以肯定地将使用限制在一个目的上。
【讨论】:
为什么不注册一个域?
它们相当便宜,这样做可以保证您不会与其他任何人发生冲突(或者至少让您感到满意,即如果确实发生冲突,则必须由其他人重写他们的代码)。
要么注册你自己的名字,要么试着编一个你以后可以用作业务基础的名字。
bernard.surname.netmadeupname.net这将使您每年花费不到 10 英镑。
就我个人而言,我会选择假名的方法,因为它可能看起来更专业(除非你选择了非常奇怪的东西)。
另一个优势是很多域都带有电子邮件功能,为您提供比 bernard.surname@hotmail.com 更好的电子邮件地址。
【讨论】:
mzcrs.pwkcy)可能是独一无二的 - 根据我的数学,您需要大约 500 万个包裹才能接近碰撞的可能性10%(50% 为 1400 万)。而且,当然,您可以通过使用更多字母来进一步降低机会。是的,它仍然不能保证唯一,但也不能使用域名。
您还可以通过诸如 DynDns(或其中一个等价物)之类的服务注册一个域(实际上是一个子域),然后使用该域名。您将成为唯一的控制器,它免费且易于维护。他们目前有 88 个顶级域名可供选择(2008 年 10 月)。 dyndns dynamic dns service
【讨论】:
当我没有命名空间时,对于我自己的个人工作,我会选择像org.<myname>.* 这样简单的东西
【讨论】:
我曾在几家不同的公司工作,他们编写内部 Java 类。通常他们只是com.blah.blah.blah,而不考虑它背后是否有一个实际的域名。
【讨论】:
恕我直言,最好不依赖任何外部信息,例如托管服务提供商或公司(它可以发布到开源社区),因为包级别的重构不是很理想,尤其是在框架的情况下和图书馆。我建议您仔细且明确地选择您的项目名称,然后使用 org.
【讨论】:
许多人都有自己的网站和相对独特的名称(或登录名)。
如果您的名字是 Bernard Something,您可能拥有 BernardSomething.com, 使 com.bernardsomething.xxxx(或 com.bsomething.xxx)成为个人代码的合法包名恕我直言。
话虽如此,如果您的项目名称是唯一的,您可能希望在此之后命名包。
当然,如果您还没有域名,请在您的名字后面获取域名!
【讨论】: