lisp - programacion - paquetes en java
¿Hay una convención común de nomenclatura de paquetes lisp? (3)
La convención que utilizo es usar una palabra única: salza, skippy, zs3, etc. Realmente no trato de tener una relación directa con la funcionalidad de la biblioteca. Intento evitar palabras genéricas que otros puedan usar como "zlib" o "zip" o "png".
Edi Weitz usa palabras relacionadas con Frank Zappa para nombrar muchos de sus paquetes: Hunchentoot, Drakma, etc.
Algunas personas utilizan el nombre de dominio invertido de org.foo.bar de estilo Java.
Entonces, la respuesta directa es no, no hay una convención común acordada que todos usen.
He creado algunos de mis propios paquetes de usuario y me he encontrado con un conflicto de nombres.
En Java, la convención de nomenclatura es usar su nombre de dominio en el nombre del paquete: por ejemplo, import com.example.somepackage ;.
¿Hay alguna convención de nomenclatura de paquetes ampliamente utilizada para los paquetes lisp comunes?
Saludos,
Russell
No hay una convención general, pero hay algunos patrones:
- Cuando la biblioteca es un puerto de algún otro idioma, un contenedor o una biblioteca de interfaz, a menudo tiene el prefijo
cl-
, comocl-gtk2
ocl-ppcre
. Aunque hubo un momento en que se abusó de este prefijo y hay muchos paquetes (por ejemplo,cl-who
), que implementan una funcionalidad única, pero aún así lo utilizan. - Si el paquete es específico de la implementación, tiene un prefijo con la taquigrafía de implementación (especialmente:
sb-
), comosb-queue
olw-compat
. - Si el paquete es una capa de compatibilidad entre implementaciones, a menudo tiene el prefijo
trivial-backtrace
, comotrivial-backtrace
otrivial-garbage
- También existe el prefijo
s-
, que puede significar ''simbólico'', comos-xml
, pero rara vez se usa.
Estos prefijos ayudan a hacer que el nombre del paquete sea único y, por lo tanto, simplifican la búsqueda de información sobre él en la web.
De lo contrario, no hay convenciones específicas, pero la regla general es favorecer nombres cortos, únicos y, probablemente, descriptivos. Por las razones de facilidad de recordar, usar y encontrar información.
Si el paquete tiene un nombre largo, es útil proporcionar un apodo más corto, porque más a menudo, las personas no usarán los símbolos del paquete calificados por sus nombres. Por ejemplo, en mi código agrego un apodo para cl-ppcre
, y hace que el código del cliente sea mucho más comprensible y claro. Aunque se debe tener precaución, para que los apodos no causen conflictos de nombre.
Una convención que a veces se ve es que los paquetes que proporcionan una envoltura de compatibilidad delgada sobre la implementación rutinaria, pero la funcionalidad no estandarizada a menudo se llaman TRIVIAL-SOMETHING
.
Esto lleva a algunos nombres realmente maravillosos: la biblioteca para trabajar con *FEATURES*
de una manera independiente de la implementación se denomina TRIVIAL-FEATURES
; Aún mejor, la biblioteca para interactuar con el recolector de basura de una manera estandarizada se llama TRIVIAL-GARBAGE
.