2009-11-16 9 views
20

ho creato alcuni dei miei propri pacchetti degli utenti e hanno eseguito in un nome di scontro.Esiste una comune convenzione di denominazione dei pacchetti Lisp?

In Java, la convenzione di denominazione è quella di utilizzare il nome di dominio nel nome del pacchetto: ad esempio import com.example.somepackage ;.

Esistono convenzioni di denominazione dei pacchetti ampiamente usato per i pacchetti Common Lisp?

saluti,

Russell

risposta

20

La convenzione che uso è quello di usare una parola unica: Salza, Skippy, ZS3, ecc io in realtà non cercare di avere un rapporto diretto con la funzionalità biblioteca. Cerco di evitare parole generiche che altri potrebbero usare come "zlib" o "zip" o "png".

Edi Weitz usa parole Frank Zappa-correlati per citarne molti dei suoi pacchetti: Hunchentoot, Drakma, ecc

Alcune persone usano Java in stile org.foo.bar invertita dei nomi di dominio.

Quindi, la risposta diretta è no, non c'è un comune, concordata convenzione che tutti usano.

+1

Grazie per la risposta. Questo conferma le mie osservazioni dai pochi pacchetti che ho usato - tranne per l'uso delle parole relative a Frank Zappa :). – Russell

+0

Non dimenticare i backronyms di Drew Crampsie come le lisp-on-line. – felideon

+3

Personalmente non mi piacciono i punti nei nomi Lisp. –

7

Una convenzione che si vede a volte è costituita da pacchetti che forniscono un sottile involucro di compatibilità su implementazioni di routine ma le funzionalità non standardizzate sono spesso chiamate TRIVIAL-SOMETHING.

Questo porta ad alcuni nomi davvero meravigliosi: la libreria per lavorare con *FEATURES* in un modo indipendente dall'implementazione è chiamata TRIVIAL-FEATURES; ancora meglio, la libreria per interagire con il garbage collector in un modo standardizzato è chiamata TRIVIAL-GARBAGE.

4

Non c'è nessuna convenzione generale, ma ci sono alcuni modelli:

  1. Quando la libreria è un porto da qualche altra lingua, un involucro o una libreria di interfaccia è spesso preceduto da cl-, come cl-gtk2 o cl-ppcre . Anche se c'è stato un tempo, in cui ha ottenuto abusato questo prefisso, e ci sono un sacco di pacchetti (per esempio cl-who), che implementano una funzionalità unica, ma ancora lo utilizzano.
  2. Se il pacchetto è specifico dell'implementazione, è preceduto dall'implementazione della stenografia (in particolare: sb-), come sb-queue o lw-compat.
  3. Se il pacchetto è un livello di compatibilità tra implementazioni, è spesso prefissati con trivial-, come trivial-backtrace o trivial-garbage
  4. C'è anche s- prefisso, che può stare per 'simbolica', come s-xml, ma è raramente usato.

Questi prefissi aiutano a rendere il nome del pacchetto univoco e semplificano quindi la ricerca di informazioni su di esso sul web.

In caso contrario non ci sono convenzioni specifiche, ma la regola generale è quello di favorire, probabilmente, i nomi descrittivi brevi, unici e,. Per i motivi di facilità di memorizzazione, utilizzo e ricerca di informazioni.

Se il pacchetto succede ad avere un nome lungo è utile per fornire un soprannome più breve, perché il più delle volte, di quanto non la gente userà i simboli del pacchetto qualificati con i loro nomi. Per esempio nel mio codice aggiungo un soprannome re-cl-ppcre, e rende il codice del client molto più comprensibile e chiaro. Sebbene sia necessario prestare attenzione, in modo che i nickname non causino conflitti di nome.

Problemi correlati