2009-11-16 16 views
20

Stworzyłem kilka własnych pakietów użytkowników i spotkałem się z konfliktem nazw.Czy istnieje wspólna konwencja nazewnictwa pakietów lisp?

W języku Java konwencją nazewnictwa jest użycie nazwy domeny w nazwie pakietu: np. import com.example.somepackage ;.

Czy istnieją powszechnie używane konwencje nazewnictwa pakietów dla typowych pakietów lisp?

Pozdrawiam,

Russell

Odpowiedz

20

Konwencja używam jest użycie unikalny słowo: Salza, skippy, ZS3 itd Naprawdę nie staram się mieć bezpośredni związek z funkcjami biblioteki. Staram się unikać ogólnych słów, które inni mogą używać, np. "Zlib" lub "zip" lub "png".

Edi Weitz używa Frank Zappa związane słów, aby wymienić wielu swoich pakietów: Hunchentoot, Drakma itp

Niektórzy używają Java stylu org.foo.bar odwróconą nazewnictwa domeny.

Tak więc, bezpośrednia odpowiedź brzmi: nie, nie ma wspólnej, uzgodnionej konwencji, z której każdy korzysta.

+1

Dzięki za odpowiedź. Potwierdza to moje spostrzeżenia z nielicznych pakietów, z których korzystałem - z wyjątkiem użycia słów związanych z Frankiem Zappą :). – Russell

+0

Nie zapomnij o backronymach Drew Crampsie, takich jak lisp-on-line. – felideon

+3

Ja osobiście nie lubię kropek w nazwach Lisp. –

7

Jedną z konwencji, którą widzimy czasami, są paczki, które zapewniają cienką powłokę zgodności w stosunku do rutynowo zaimplementowanej, ale niestandardowa funkcjonalność jest często nazywana TRIVIAL-SOMETHING.

Prowadzi to do kilku naprawdę wspaniałych nazw: biblioteka do pracy z *FEATURES* w sposób niezależny od wdrożenia nosi nazwę TRIVIAL-FEATURES; jeszcze lepiej, biblioteka do interakcji ze śmieciarem w znormalizowany sposób nazywa się TRIVIAL-GARBAGE.

4

Nie ma ogólna konwencja, ale istnieje kilka wzorów:

  1. gdy biblioteka jest port z innego języka, owijki lub biblioteki interfejsu jest często poprzedzony cl-, jak cl-gtk2 lub cl-ppcre . Chociaż był czas, kiedy ten przedrostek został nadużyty i istnieje wiele pakietów (na przykład cl-who), które implementują unikalną funkcjonalność, ale nadal jej używają.
  2. Jeśli pakiet jest zależny od implementacji, jest poprzedzony prefiksem implementacji (w szczególności: sb-), takim jak sb-queue lub lw-compat.
  3. Jeśli pakiet jest warstwa kompatybilności pomiędzy implementacjami, często jest poprzedzona trivial-, jak trivial-backtrace lub trivial-garbage
  4. Istnieje również s- prefiks, który może stać za „symboliczne”, jak s-xml, ale to rzadko stosowane.

Te prefiksy pomagają w uniknięciu nazwy pakietu, a tym samym ułatwiają znajdowanie informacji na jego temat w Internecie.

W przeciwnym razie nie ma określonych konwencji, ale ogólną zasadą jest faworyzowanie krótkich, niepowtarzalnych i prawdopodobnie opisowych nazw. Ze względu na łatwość zapamiętywania, użytkowania i wyszukiwania informacji.

Jeśli pakiet ma długą nazwę, przydaje się krótszy pseudonim, ponieważ częściej niż inni ludzie będą używać symboli paczuszek zakwalifikowanych według ich nazw. Na przykład w moim kodzie dodam pseudonim re do cl-ppcre, dzięki czemu kod klienta jest znacznie bardziej zrozumiały i czytelny. Należy zachować ostrożność, aby pseudonimy nie powodowały konfliktów nazw.

Powiązane problemy