你在Java中使用什么包命名规则来进行个人/业余爱好项目?

我已经熟悉使用域名创build唯一的包名(即包com.stackoverflow.widgets )的标准Java包命名约定。 但是,我从来没有看到如何select个人项目的软件包名称的build议。 我认为这是因为这是个人品味的问题。

那么,你如何select个人项目的软件包名称,永远不会投入生产(你可能在空闲时间试验一个新的框架)。 假设你没有一个可以用来创build你的包结构的个人网站,你会做什么? 你是否有一个合适的逻辑系统来为爱好项目生成新的软件包名称,或者你只是使用简单的丢弃软件包名称,如mypackage

因为我只是好奇,看看不同的人的想法是什么,我已经把这个社区维基。

对我个人而言,我从来没有这么想过,但是我今天晚上想和Wicket一起玩,而且想到我对于如何组织自己的兴趣项目没有一个清晰的认识。 对于爱好项目(至less在我的脑海里)来说,一个单独的,独特的软件包命名规则可以作为将个人和工作相关的代码彼此分开的好办法。

我正在考虑一个简单的层次命名约定,以将我的个人项目的源代码保存在单个根文件夹中:

  • 使用myprojects作为根文件夹
  • 附加项目名称
  • 添加任何附加的子包名称

所以,我的Wicket项目将在包myprojects.learningwicket和unit testing将在包myprojects.learningwicket.tests (例如)。

如果你只是在做别人没有使用代码的个人项目,那么你可以编写一个你喜欢的包名称。 不要组成以com.开头的东西com.net. 或其他顶级域名,因为这意味着你拥有域名(即使用com.john作为你的包名,只是因为你的名字恰好是约翰不是一个好主意)。

如果你要把代码给别人,你应该使用一个全球唯一的包名称,根据Java约定意味着你应该注册和使用一个域名。

我只是用我的名字缩写:fg.nameofproject.etc

它减less了打字。 它可以在任何时候用sf.net或com作为前缀。 或组织。 或com.google ..

由于这个项目是个人化的,就像你刚买的个性化的礼品衬衫一样 – 它会感觉很好。

 pmurray_at_bigpond_dot_com.project.package 

<sarcasm> Bah。 任何自尊的程序员都会拥有自己的域名。 这显然是一个诡计的问题。 每个人都有自己的个人域名! </sarcasm> 🙂

好的,认真地说,购买自定义域名可能是最简单的select。 每年大约10美元,你可以find有信誉的提供商来主办域名和转发电子邮件。

我将大部分嗜好项目存储在Google Code中,因此我只是使用项目站点作为包名称:com.googlecode.donkirkby.someproject。

我想你已经解决了。 在这里避免的诱惑是根本不打扰包名。 保存一些按键很容易,因为“我只是写一些testing代码”。 但是随后代码变得更好,更有用,更大,然后你意识到,对于可能是一个长期存在的库或应用程序,你有一个坚实的开始。 它可能不是一个永远离开家庭networking的图书馆或应用程序,但重要的是,你没有想到未来。 这就是丹麦的计算机科学鬼 – 总是想着前进,如果只是一点点。

我用于我的爱好代码的命名约定非常像你的。 我有一个名为“futura”的顶级目录(冗长,无聊的原因,为什么这个名字来了),所有我的代码挂起。 我尝试将代码组织到包库中,即使它可能是我从不用于另一个项目的类或包。 我在futura.app。*文件夹中放置所有的应用程序(也就是任何具有void main(String [] args)的类)。 我也尝试模仿我自己的代码的标准Java库包名称,虽然在一些情况下,我打破了惯例,因为我自己的口味(即互联网futura.inet,不只是套接字,代码和futura.collections非-util的东西。)来解释David Mamet:总是泛化。 总是泛化!

从你过去常常提出的问题来看,我怀疑你也同意我的最后一点:你不必把爱好者黑客视为一个企业级的项目,但是如果你把一些纪律带到主场比赛,爱好更有意义。

我的名字是anjan

通常我使用com.anjan

我有一个自己的幻想公司 – 有时候我会用这个

sourceforge的传统(如hibernate和其他包显示的)是net.sf. *

所以,根据你的心情,你可以去那个。

我使用我的OpenIDurl,然后追加我的项目名称。 例如, com.myopenid.cd1.twitter是我一直在开发的Twitter客户端的根包。

我的命名为: prj.project_name

我只是使用我的名字:surname.initials.xxx,作为一个很好的包括之间的简洁和避免碰撞。 我认为,如果我select公开发布代码的话,会给出一个合理的无碰撞命名空间。 我也有一个我编写的程序,可以重新打包整个目录树,所以我想我应该永远需要重新包装发布它是很痛苦的…因此,我没有放松太多的睡眠。

在surname.initials.xxx之后,我使用应用程序包的应用程序,库包的lib,以及我纯粹尝试的东西。

你怎么看待lastname.firstname.project ??? 像luz.marlon.project?

我想过问这个问题。 到目前为止,我已经使用了前缀com.tehvan,即使我实际上没有一个公司。