我想在clojure中做出小的web框架。我在/ handlers目录中有一堆clojure文件,我想在我的项目的.core命名空间中要求所有这些文件。每个文件都定义了自己的名称空间。例如:project.handlers.home。这个背后的想法是当我添加新的处理程序时,我不想修改核心文件中的名称空间声明来包含它。我想出的唯一解决方案是查找目录中的所有文件并使用clojure.core/load加载它们,但它远非美丽而惯用。有没有一种惯用的方式来做到这一点?Clojure自动需要文件
回答
有没有一种惯用的方法来做到这一点?
IMO,no。 Clojure中的习惯用语通常赞成明确表达“做魔术”,特别是在命名全局对象时(自动加载名称空间显然是这样)。
我不知道为什么你不想在添加新的处理程序时修改你的“核心”文件,但是你可能会考虑引入一个额外的名字空间来加载“核心”和你的处理程序并将它们连接在一起。
谢谢你的回答。 – ivs
Noir包括some functionality像这样,使它成为一个明确的API调用来加载特定目录下的命名空间。有关此示例,请参阅load-views。它用它来自动加载路径。但是,Noir方法由于所涉及的魔法数量以及该方法的其他复杂性(例如滞留路径定义)而没有感觉到习惯用法。
如果您需要从工具,框架或库的角度查找命名空间,我会使用find-namespaces
in tools.namespace
然后需要/加载它们。这种方法在提供用户级可插入性方面很有用,用户可以将一个处理程序放到一个目录中,然后在代码中看到新的选项,尽管显式的清晰度往往更为明显。
好点。谢谢。 – ivs
- 1. Clojure不需要cljc文件
- 2. 动态需要文件?
- 3. Clojure是否需要JDK?
- 4. clojure需要语法理由
- 5. Clojure:需要架构建议
- 6. Clojure的:需要和Instaparse
- 7. 柳叶刀是否需要clojure包装或jar文件?
- 8. 为什么我不需要Clojure文件中的Java库?
- 9. 需要为已编译的clojure类创建jar文件
- 10. 自动需要的课程?
- 11. 自动需要宝石
- 12. 自动URI解码需要
- 13. 需要制作一个自动执行批处理文件
- 14. 自动需要在Rails 4中的lib文件
- 15. 需要在多个文件中自动加载
- 16. 自动加载文件,当使用需要功能
- 17. 需要从CSV文件创建自动代码的算法
- 18. 我需要自动化这个Excel文件最好我可以
- 19. 在Ruby中'不需要'不自动包含子文件夹吗?
- 20. 自动需要zend框架中的静态调用文件
- 21. Cakephp:多个文件上传字段集为自动需要
- 22. Android活动自动启动 - 不需要
- 23. webpack2动态样式文件需要
- 24. 需要文件Lua
- 25. Timbre(Clojure),完成需要1分钟
- 26. 需要帮助优化clojure语句
- 27. 为什么Clojure需要attr-map?
- 28. clojure slurp需要绝对路径
- 29. 在clojure中,我如何需要multimethod?
- 30. 如何在clojure/leiningen中需要java类
尝试过了吗? –
无非是遍历目录和做(clojure.core /加载“文件”)。 – ivs
你应该真的在这个问题上表现出一些努力,你确实尝试了一些东西,以及你在哪里被困住。通常你会显示一些代码。 * downvote *箭头说:“这个问题没有显示任何研究工作;它不清楚或没有用”。如果你这样做,我相信你会得到答案。 –