Существует ли общее соглашение об именах пакетов lisp?
Я создал некоторые из моих собственных пакетов пользователей и столкнулся с конфликтом имени.
В Java соглашение об именах заключается в использовании вашего имени домена в имени пакета:
например import com.example.somepackage;.
Существуют ли широко используемые соглашения об именах пакетов для общих пакетов lisp?
Привет,
Рассел
Ответы
Ответ 1
Соглашение, которое я использую, заключается в использовании уникального слова: salza, skippy, zs3 и т.д. Я действительно не пытаюсь иметь прямое отношение к библиотечным функциям. Я стараюсь избегать общих слов, которые другие могут использовать как "zlib" или "zip" или "png".
Эди Вейц использует слова Фрэнка Заппы, чтобы назвать многие из его пакетов: Hunchentoot, Drakma и т.д.
Некоторые люди используют именованное имя домена org.foo.bar в стиле Java.
Итак, прямой ответ - нет, нет общего, согласованного соглашения, которое все используют.
Ответ 2
Одним из решений, которые вы видите, иногда являются пакеты, которые предоставляют тонкую оболочку совместимости по сравнению с обычной реализацией, но нестандартная функциональность часто называют TRIVIAL-SOMETHING
.
Это приводит к некоторым действительно замечательным именам: библиотека для работы с *FEATURES*
независимым от реализации способом называется TRIVIAL-FEATURES
; еще лучше, библиотека для взаимодействия с сборщиком мусора стандартным образом называется TRIVIAL-GARBAGE
.
Ответ 3
Нет общего соглашения, но есть несколько шаблонов:
- Когда библиотека представляет собой порт с другого языка, оболочку или библиотеку интерфейса, она часто имеет префикс
cl-
, например cl-gtk2
или cl-ppcre
. Хотя было время, когда этот префикс подвергся злоупотреблениям, и существует множество пакетов (например, cl-who
), которые реализуют уникальную функциональность, но все еще используют ее.
- Если пакет специфичен для реализации, он имеет префикс сокращения (в частности:
sb-
), например sb-queue
или lw-compat
.
- Если пакет является уровнем совместимости между реализациями, он часто префикс с
trivial-
, например trivial-backtrace
или trivial-garbage
- Также существует префикс
s-
, который может означать "символический", например s-xml
, но он редко используется.
Эти префиксы помогают сделать имя пакета уникальным и, таким образом, упростить поиск информации об этом в Интернете.
В противном случае нет конкретных соглашений, но общее правило заключается в том, чтобы использовать короткие, уникальные и, возможно, описательные имена. По соображениям легкости запоминания, использования и поиска информации.
Если пакет имеет длинное имя, он удобен для предоставления более короткого псевдонима, потому что чаще, чем люди, будут использовать условные обозначения пакетов, соответствующие их именам. Например, в моем коде я добавляю псевдоним re
в cl-ppcre
, и он делает код клиента более понятным и понятным. Хотя следует соблюдать осторожность, чтобы псевдонимы не вызывали конфликтов имен.