我刚刚开始讨论 core.clj。
它的约定是什么?应该去哪些代码?公共API?
创建项目时由 leiningen 生成。 我查看了一些库的源代码,这个文件也出现在那里(每个包?)。
由于
答案 0 :(得分:7)
Leiningen生成foo.core,因为它需要选择一个名称,而核心是通用的,它可能不会错。这是一个样式决定,但我通常选择将core.clj重命名为对我的项目实际有意义的名称。
答案 1 :(得分:6)
它没有明确的含义,但在应用程序中,通常会找到入口点main-
函数。对于库,foo.core
通常是用户将导入以获取主要功能的命名空间。
你没有有这样做,但它是一个半可预测的地方,无论你在写什么,都要有'中心位' - 即使你的实际逻辑和算法代码在其他地方。
答案 2 :(得分:5)
这只是莱宁根发出的模板文件。如果我运行lein new foo
,则名称空间foo.core
没有特定或标准含义。命名空间foo
完全合法,是项目的主要API容器。它只是一个免费的文件供您开始工作。
也就是说,如果你有一个项目foo
,虽然没有强制要求{1}}名称空间中存在该项目的所有代码。 Leiningen将允许您使用文件foo.*
和src/foo.clj
构建项目,src/bar.clj
要求foo
是完全合理的,但是在打包您的代码以进行分发时,这是可能是个坏主意。