我开始学习Clojure,希望构建一个Web应用程序,但是不知道该使用哪个框架。我在网上搜索了几个小时,找到的所有东西都有点重叠,让我有点困惑。
我有ASP.NET MVC和JavaEE的经验,如果Clojure web编程与这些经验有关,我很乐意听取建议。
Leiningen、Compojure、Luminus和Ring之间的关系是什么?
Leiningen是一个构建工具,类似于Java世界中的Maven(实际上,它在底层使用Maven)。您可以在project.clj
中定义依赖关系和配置,然后运行良好的Leiningen命令来下载依赖项、编译代码、运行应用程序等。
Ring是一个基本的Web框架。您可以将其与JavaEE中的Servlet进行比较。它提供了处理请求的基本功能,但并不是非常高级或功能齐全。特别地,它要求您自己编写路由分发。
如果您不想处理路由,只需使用 Compojure 即可。正如其在GitHub页面上所述,“Compojure是为Ring设计的一个小型路由库,允许由小型独立部分组成Web应用程序”。如果需要与Java世界进行比较,我认为Spring MVC是相似的。
我以前没有听说过Luminus,但它似乎试图替换现在已经过时的Noir。Luminus和Noir都是基于Ring和Compojure构建,并进一步扩展了Compojure的功能。
我的简历:非常功能化的开发Web应用程序的方法,设计良好且功能强大,但与ASP.NET绝对不熟悉或类似,值得仔细审查。
有点跑题,只是为了完整性而提到Liberator,以防你想要使用Clojure实现REST API。
lib-noir
)绑在一起,而不是自己添加新功能。如果你有其他意思,请随意扩展回答。 - ffriend