2009-11-16 16 views
20

自分のユーザーパッケージをいくつか作成し、名前の衝突に遭遇しました。共通のlispパッケージ命名規則がありますか?

Javaでは、パッケージ名にドメイン名(例: )を使用するという命名規則が適用されます。 import com.example.somepackage ;.

一般的なlispパッケージのパッケージ命名規則は広く使用されていますか?私は本当にライブラリ機能への直接的な関係を持ってしようとしないsalza、スキッピー、ZS3、など:

よろしく、

ラッセル

答えて

20

は、私が使用する慣習はユニークワードを使用することです。私は、他人が "zlib"や "zip"や "png"のように使うかもしれない一般的な言葉を避けようとしています。 Hunchentoot、Drakmaなど

一部の人々は、ドメイン・ネーミングを逆転org.foo.bar Javaスタイルを使用します。

エディワイツは彼のパッケージの多くに名前を付けるためにフランク・ザッパ関連の単語を使用しています。

したがって、直接的な答えは「いいえ」であり、誰もが使用する合意された共通の条約は存在しません。

+1

お返事ありがとうございます。これは私が使用したいくつかのパッケージからの私の観察を確認します - Frank Zappa関連の言葉の使用を除いて:)。 – Russell

+0

lisp-on-linesのようなDrew Crampsieのバックログを忘れないでください。 – felideon

+3

私は個人的にはLispの名前のドットが好きではありません。 –

7

標準的に実装されていますが標準化されていない機能のために、薄い互換性ラッパーを提供するパッケージは、しばしばTRIVIAL-SOMETHINGと呼ばれます。

これはいくつかの素晴らしい名前につながります。実装に依存しない方法で*FEATURES*を使用するライブラリはTRIVIAL-FEATURESと呼ばれます。ガベージコレクタと標準化された方法で対話するためのライブラリは、TRIVIAL-GARBAGEと呼ばれます。

4

という一般的規則はありませんが、いくつかのパターンがある:ライブラリがcl-gtk2またはcl-ppcreのようないくつかの他の言語、ラッパーまたはそれはしばしばcl-が付いているインタフェース・ライブラリーからのポートは、ある

  1. 。このプレフィックスが乱用され、多くのパッケージ(たとえばcl-who)がある時がありましたが、それはユニークな機能を実装していますが、まだ使用しています。
  2. パッケージに実装固有のものがある場合は、sb-queueまたはlw-compatのように、実装の省略名(最も顕著なもの:sb-)の接頭辞が付きます。
  3. パッケージは、実装間の互換性の層である場合
  4. は、それはしばしば trivial-backtraceまたは trivial-garbage
  5. s-xmlのように、「象徴」のために立つことがs-プレフィックスは、もありますように、trivial-が付いているが、それはほとんど使用されませんです。

これらの接頭辞は、パッケージの名前を一意にするのに役立ち、ウェブ上の情報を簡単に見つけるのに役立ちます。

その他の規則はありませんが、一般的な規則は、短い、一意の、おそらくは説明的な名前を優先することです。覚えやすく、使いやすく、情報を見つけるために。

パッケージに長い名前がある場合は、より短いニックネームを提供すると便利です。多くの場合、人々が名前で修飾されたパッケージのシンボルを使用することが多いためです。たとえば私のコードでは、ニックネーム「re」をcl-ppcreに追加すると、クライアントコードがはっきり分かるようになります。ニックネームが名前の衝突を引き起こさないように、注意を払う必要があります。