我创建了一些自己的用户包,但遇到了名称冲突。
在Java中,命名惯例是在包名中使用您的域名: 例如:import com.example.somepackage;。
对于常见的Lisp软件包,是否有广泛使用的包命名惯例?
谢谢,
Russell
我创建了一些自己的用户包,但遇到了名称冲突。
在Java中,命名惯例是在包名中使用您的域名: 例如:import com.example.somepackage;。
对于常见的Lisp软件包,是否有广泛使用的包命名惯例?
谢谢,
Russell
我通常使用一个独特的单词:salza,skippy,zs3等。我并不试图与库功能直接相关联。我尽量避免像“zlib”、“zip”或“png”这样其他人可能使用的通用词汇。
Edi Weitz使用弗兰克·扎帕(Frank Zappa)相关的词汇为他的许多软件包命名:Hunchentoot、Drakma等等。
有些人使用Java风格的org.foo.bar反转域名命名。
因此,直接回答是没有一个共同的、被广泛认可的规则大家都使用。
有时候你会看到一些包提供了一个薄的兼容性包装器,以通常实现但非标准化的功能,通常被称为TRIVIAL-SOMETHING
。
这导致一些非常棒的名称:用于以独立于实现的方式处理*FEATURES*
的库称为TRIVIAL-FEATURES
;更好的是,用于以标准化的方式与垃圾回收器交互的库称为TRIVIAL-GARBAGE
。
cl-
,例如 cl-gtk2
或 cl-ppcre
。尽管曾经有过滥用该前缀的情况,有很多包(如 cl-who
)实现了唯一功能,但仍然使用它。sb-
),如 sb-queue
或 lw-compat
。trivial-
为前缀,例如 trivial-backtrace
或 trivial-garbage
s-
前缀,可能代表“符号”,例如 s-xml
,但很少使用。cl-ppcre
添加一个昵称 re
,这使得客户端代码更加易懂和清晰。尽管应该小心,以免昵称引起名称冲突。