web-dev-qa-db-ja.com

Javaの個人/趣味のプロジェクトには、どのパッケージ命名規則を使用しますか?

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

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

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

個人的にはあまり考えたことはありませんでしたが、今夜 Wicket で遊んでみたいと思いました。趣味のプロジェクト。趣味プロジェクト用の別個の個別のパッケージ命名規則(少なくとも私の考えでは)は、個人用コードと作業関連コードを互いに明確に分離する良い方法として役立ちます。

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

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

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

139
Mike Spross

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

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

47
Greg Hewgill

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

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

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

25
Florin

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

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

20
James Schek
pmurray_at_bigpond_dot_com.project.package
20
paulmurray

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

15
Don Kirkby

うまくいったと思う。ここで避けたい誘惑は、パッケージ名をまったく気にしないことです。 「テストコードを書いているだけです」という理由で、いくつかのキーストロークを保存するのは簡単です。しかし、その後、コードは適切かつ有用になり、大きくなります。そして、長寿命のライブラリーまたはアプリケーションである可能性のあるものに対して堅実なスタートを切ったことがわかります。それはあなたのホームネットワークを離れるライブラリやアプリケーションではないかもしれませんが、ポイントはあなたが先を考えていないということです。これがデンマークのコンピューターサイエンスの幽霊です。少しでも、常に先を考えてください。

私の趣味のコードに使用する命名規則は、あなたのものと非常によく似ています。 「futura」という名前のトップレベルのディレクトリ(その名前が生まれた長く退屈な理由)があり、すべてのコードがハングしています。他のプロジェクトで使用したことのないクラスやパッケージであっても、コードをパッケージライブラリに整理してみます。すべてのアプリケーション(つまり、クラスにvoid main(String [] args)があるもの)をfutura.app。*フォルダーに配置します。私は自分のコードの標準Javaライブラリパッケージ名を模倣しようとしますが、いくつかのケースでは、自分の好みのために慣習に違反しました、コード、およびユーティリティ以外のfutura.collections。)David Mametの言い換え:常に汎用化する常に汎用化する!

あなたが質問を投稿するために使用したケアから、私はあなたが私の最後の点にも同意すると思います:あなたは趣味のハッキングを企業レベルのプロジェクトとして扱う必要はありませんが、趣味はさらにやりがいがあります。

3
Jim Nelson

私の命名:prj.project_name

2
Amir Saniyan

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

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

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

sourceforge(hibernateおよび他のパッケージが示したように)の伝統はnet.sf. *です

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

2
anjanb

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

2
cd1

Niceは簡潔さと衝突回避を構成するため、surname.initials.xxxという名前を使用します。コードを一般公開することを選択した場合、衝突のない合理的な名前空間が得られると考えました。また、ディレクトリツリー全体を再パッケージ化できる小さなプログラムも作成しているので、公開するために再パッケージ化する必要があると考えた場合、それは非常に簡単です。

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

1
Lawrence Dol

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

1
Marlon

これと同じ質問をすることを考えました。これまでのところ、実際には会社を持っていなくても、プレフィックスcom.tehvanを使用しました。

0
tehvan