欢迎!请参阅 关于 页面获取更多关于此功能的信息。
嗨,我想知道 Clojure 应用程序的插件系统是否有最佳实践。
这里所说的插件系统指的是第三方编写 clojure 代码的结构或协议,这些代码作为插件由 Clojure 应用程序加载,并且不需要重新编译应用程序。
一个用例示例是一个 Clojure 应用程序设计为加载和转换某些数据集。它应该允许第三方编写可以部署到特定目录的插件,这些插件可以加载到转换管道中。应用程序不需要重新编译。
这样做有最佳实践吗?
希望这是 Clojure 风格而不是 Java 风格。
提前感谢。
您可以将“插件”(jar)放在类路径上,解析表示由“插件”提供的函数的符号,并调用它。
既然你无论如何都不需要编译Clojure,所以没有必要进行“重新编译”。
(编辑:也要求函数的命名空间,以便在解析符号之前让Clojure加载函数。)