私たちは OSGi で大きなプロジェクトを行っており、いくつかのコモンズ モジュールを追加しています。アーティファクトの命名についてはいくつかの議論があります。
したがって、モジュールに名前を付けるときの1つの可能性は、たとえば次のとおりです。
cmns-definitions
(一般的な定義について)、もう 1 つはcmns-definition
、さらにもう 1 つはcmns-def
です。これは、パッケージ名にも影響を与えます。xx.xxx.xxx.xxx.xxx.commons.definitions
に変更するcmns-def
と になります
xx.xxx.xxx.xxx.xxx.commons.def
。
このパッケージ内には、システム全体で使用される列挙型やその他の定義などのクラスがあります。
cmns-definitions
パッケージ内の定義は 1 つだけではないので、私は個人的に傾いています。java.util
たとえば、ユーティリティが 1 つしかないことを指摘する人もいます。それでも、私にとってjava.util
は略語です。これは、 Java ユーティリティまたはJava ユーティリティを意味します。で同じことが起こりcommons-lang
ます。
パッケージの名前は?なぜこの名前を選んだのですか?
cmns-definitions
cmns-definition
cmns-def
おまけの質問: のような名前を付ける方法はcmns-exceptions
? そう名付けています。名前を付けcmns-xcpt
ますか?
編集:
確認または矛盾することを期待して、私はこれについて私自身の考えを投げかけています. できれば、してください。
私が思うに、何かに名前を付ける背景には、その中身を理解しやすくするためです。または、Peter Kriens によると、覚えやすくし、パターンを介してプロセスを自動化できるようにすることです。どちらも有効な引数です。
私の推論は、パターンに関して次のとおりです。
1) 実証が行われ、それが業界でよく知られている場合は、そのネーミングに従ってください。
例:「機能」はこれに関するケースです。cmns-features というモジュールがあります。これは、このモジュールに多くの機能があるということですか? いいえ、「Apache karaf の "features" ファイルを実装するモジュール」という意味です。
「コモンズ」とは、業界で広く受け入れられている「コモンズ」を具体化したものです。「よくある」という意味ではありません。「共通コード」という意味です。
たとえば、モジュール名として extr-commons が表示されている場合、extr (この場合は抽出) の共通コードが含まれていることがわかります。
2) モジュール内の多数のクラスが協力して、全体に明確な「唯一無二」の意味を与える場合は、単数形を使用して名前を付けます。
モジュールの大部分はここに含まれています。何かに cmns-persistence-jpa という名前を付けた場合、内部のどのクラスも協力して cmns-persistence-api の jpa 実装を提供することを意味します。内部に 2 つの実装があるとは思いませんが、実際には無数のクラスが集まって 1 つの実装を構成します。私にはクリスタルクリアです。いいえ?
3) クラスのグループ化が類縁性によってクラスを集めることのみを目的として行われるが、クラスが無目的に連携しない場合は、複数形を使用します。
cmns-definitions (システム全体で使用される列挙型) の例を次に示します。
別の方法として、略語を使用することで問題を回避できます。たとえば、cmns-def は人間の読み手によって cmns-definitions に「解釈展開」されることもあります。多くの人は、xxxx-utility を意味する "xxxx-util" も使用しています。
さらに、複数形を意味する名前を使用して、物事をまとめるための 3 つ目のオプションを使用できます。「api」という言葉が頭に浮かびますが、「pack」のように何かを複数形にする言葉なら何でも構いません。
これらのケース (3) へのサポートは、commons-collections (複数形を使用)、commons-dbcp (省略形を使用)、commons-lang (再び省略形) などのよく知られたモジュールと、api を使用してクラスをアフィニティーによってパックするものです。
apache から:
commons-collections -> 最も重要な Java アプリケーションの開発を加速する多くの強力なデータ構造
commons-lang -> java.lang API 用のヘルパー ユーティリティのホスト
commons-dbcp -> いくつかのデータベース接続プールのパッケージ