我创建了一些自己的用户包,并遇到了名称冲突.
在Java中,命名约定是在包名中使用您的域名:例如import com.example.somepackage;.
常见的lisp包是否有广泛使用的包命名约定?
问候,
罗素
Xac*_*ach 20
我使用的约定是使用一个独特的单词: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-garbages-前缀,可能代表“符号”,例如s-xml,但很少使用。这些前缀有助于使包的名称具有唯一性,从而简化在 Web 上查找有关它的信息。
否则没有特定的约定,但一般规则是支持简短、唯一且可能是描述性的名称。为了便于记忆、使用和查找信息。
如果包碰巧有一个长名称,提供一个较短的昵称会很方便,因为通常情况下,人们会使用由他们的名称限定的包符号。例如,在我的代码添加一个昵称re来cl-ppcre,它使客户端代码更易于理解和清晰。尽管应该小心谨慎,以免昵称引起名称冲突。