151

私は、ドメイン名を使用して一意のパッケージ名 (つまり package com.stackoverflow.widgets) を作成するという、標準の Java パッケージ命名規則に既に精通しています。ただし、個人プロジェクトのパッケージ名の選択方法に関する推奨事項は見たことがありません。これは本当に個人的な好みの問題だからだと思います。

では、本番環境には決してならない個人プロジェクトのパッケージ名をどのように選択すればよいでしょうか (空き時間に新しいフレームワークを試しているかもしれません)。パッケージ構造を作成するために使用できるドメインを持つ個人の Web サイトを持っていないと仮定すると、何をしますか (またはしたいと思いますか)? 趣味のプロジェクト用に新しいパッケージ名を生成するための論理的なシステムを用意していますか? それとも、単に のような単純な使い捨てのパッケージ名を使用していますmypackageか?

これについてさまざまな人々の考えを知りたいだけなので、これをコミュニティ wiki にしました。

個人的には、あまり考えたことがありませんでしたが、今夜はWicketで遊んでみたかったのですが、趣味のプロジェクトをどのように整理したいかについて明確な考えがないことに気づきました。趣味のプロジェクト用に個別のパッケージ命名規則を作成することは (少なくとも私の考えでは)、個人的なコードと仕事に関連するコードを明確に区別するための良い方法となります。

個人的なプロジェクトのソースを単一のルート フォルダーに保持するために、単純な階層的な命名規則を考えていました。

  • myprojectsルートフォルダとして使用
  • プロジェクト名を追加
  • 追加のサブパッケージ名を追加します

したがって、私の Wicket プロジェクトはパッケージに含まれ、myprojects.learningwicket単体テストはパッケージに含まれますmyprojects.learningwicket.tests(たとえば)。

4

12 に答える 12

50

他の誰もコードを使用しない個人的なプロジェクトを行っているだけの場合は、好きなパッケージ名を作成できます。com.ただし、またはまたはその他のトップレベル ドメインで始まるものを作成しないでくださいnet.。これは、ドメイン名を所有していることを意味するためです (つまりcom.john、名前がたまたま John であるという理由だけでパッケージ名として使用することはお勧めできません)。 .

コードを他の人に渡す場合は、グローバルに一意のパッケージ名を使用する必要があります。これは、Java の規則に従って、ドメイン名を登録して使用する必要があることを意味します。

于 2008-11-15T05:01:47.233 に答える
28

私は自分のイニシャルを使用します:fg.nameofproject.etc

タイピングを減らします。いつでもsf.netまたはcomのプレフィックスを付けることができます。またはorg。またはcom.google.。

このプロジェクトは個人的なものであるため、プレスしたてのパーソナライズされたギフトシャツと同じように特別なものになります。

于 2008-11-15T06:48:33.790 に答える
20

<sarcasm>ああ。自尊心のあるプログラマーなら誰でも、自分のドメイン名を持っているでしょう。これは明らかにトリックの質問です。誰もが自分の個人ドメイン名を持っています!</sarcasm>:-)

さて、真面目な話ですが、カスタムドメイン名を購入するのがおそらく最も簡単なオプションです。年間約10ドルで、ドメインをホストしてメールを転送する評判の良いプロバイダーを見つけることができます。

于 2008-11-17T18:48:32.197 に答える
20
pmurray_at_bigpond_dot_com.project.package
于 2009-02-19T08:55:15.110 に答える
17

私は趣味のプロジェクトのほとんどをGoogleCodeに保存しているので、プロジェクトサイトをパッケージ名として使用しますcom.googlecode.donkirkby.someproject

于 2008-11-15T06:37:32.080 に答える
3

私の名前はアンジャンです

通常、私はcom.anjanを使用します

私は自分のファンタジー会社を持っています-時々私はそれを使います

sourceforgeの伝統(休止状態や他のパッケージが示しているように)はnet.sfです。*

だから、あなたの気分に応じて、あなたはそれで行くことができます。

于 2008-11-15T06:41:21.010 に答える
3

私はあなたがそれがうまくいったと思います。ここで避けたいのは、パッケージ名をまったく気にしないことです。「テストコードを書いているだけ」なので、いくつかのキーストロークを簡単に節約できます。しかし、コードが良くて便利で大きくなると、長寿命のライブラリやアプリケーションの可能性があるものを確実に開始できることがわかります。ホームネットワークを離れるのは図書館やアプリケーションではないかもしれませんが、要点は、あなたが先を考えていなかったということです。それは、デンマークのコンピュータサイエンスの幽霊です。少しでも、常に先を考えてください。

私が趣味のコードに使用している命名規則は、あなたの命名規則と非常によく似ています。私には「futura」という名前のトップレベルのディレクトリがあり(その名前が付けられた長い、退屈な理由)、すべてのコードがぶら下がっています。別のプロジェクトで使用したことのないクラスやパッケージであっても、コードをパッケージライブラリに整理しようとしています。すべてのアプリケーション(つまり、クラスにvoid main(String [] args)があるもの)をfutura.app。*フォルダーに配置します。また、自分のコードの標準Javaライブラリパッケージ名を模倣しようとしていますが、いくつかのケースでは、自分の好みのために慣習を破りました(つまり、インターネットの場合はfutura.inet、非の場合はソケット、コード、futura.collectionsだけではありません)。 -util stuff。)David Mametを言い換えると、常に一般化する必要があります。 常に一般化してください!

あなたが質問を投稿したときの注意から、あなたは私の最後の点にも同意していると思います。趣味のハッキングを企業レベルのプロジェクトとして扱う必要はありませんが、その分野の一部をホームゲームに持ち込むと、趣味はさらにやりがいがあります。

于 2008-11-15T07:16:17.807 に答える
3

私の命名: prj.project_name.

于 2012-02-11T16:16:40.360 に答える
2

OpenID URL を使用し、プロジェクトの名前を追加します。たとえば、com.myopenid.cd1.twitter私が開発している Twitter クライアントのルート パッケージです。

于 2009-05-31T18:06:27.247 に答える
1

lastname.firstname.project についてどう思いますか??? luz.marlon.project のように?

于 2008-11-18T13:20:37.880 に答える
1

簡潔さと衝突回避の間の適切な構成要素として、姓名.イニシャル.xxx を使用しています。コードを公に公開することを選択した場合でも、衝突のない適切な名前空間が得られると考えました。ディレクトリツリー全体を再パッケージ化できる小さなプログラムも書いたので、公開するために再パッケージ化する必要がある場合は非常に簡単だと思いました...したがって、あまり眠れませんでした。

surname.initials.xxx の後に、アプリケーション パッケージには app、ライブラリ パッケージには lib、純粋に実験しているものには tst のいずれかを使用します。

于 2008-11-16T04:45:45.923 に答える
0

私はこれと同じ質問をすることを考えました。これまで、実際には会社を持っていませんが、接頭辞com.tehvanを使用しました。

于 2009-02-19T07:20:25.823 に答える