要在Clojure中开始一个新的Web应用程序,将使用以下库作为基础开始,但希望听到其他人或其他人:
Om - UI
秘书 - 客户端导航(替换为Bidi或Silk?)
Sente - 客户端/服务器通信
Ring / Compojure / HttpKit - Web服务器
组件 - 应用程序架构/模块化/重新加载模式(此处还有其他内容?)
朋友 - 身份验证/授权(Buddy代替?)
Liberator - REST Web服务(任何替代方案?)
Figwheel,Weasel,Reloaded Pattern - 开发糖
答案 0 :(得分:0)
这个答案实际上取决于你真正需要的是什么。除了库的整体组合之外,你不应该总是将它作为项目的起点。您尚未指定您的要求,因此我们无法说出您应该将哪些内容添加到项目中。
以下是一些一般性意见:
许多Om应用都是单页应用,从单个网址加载。如果那也是你的情况,你就不需要秘书。如果您有多个URL都使用相同的已编译的clojurescript文件,那么这就是秘书进入图片的地方。但是如果您没有使用:使用clojurescript进行高级优化,那么您也不需要秘书,因为您可以在每个页面上显式加载特定的命名空间。取决于您所希望的复杂性和部署级别。
你提到Http Kit,你对Jetty有什么特殊需求,这往往更常见吗?如果是因为你想要websockets,那么值得考虑为什么你需要websockets。在我看来,它们很酷,但在将它们作为默认环境之前应该先考虑一下。 Websockets肯定不是没有它们的缺陷,大多数服务器 - 浏览器通信的情况都是通过使用正常的请求/响应和ajax以非常简单和更稳定的方式处理的,它们已经存在很长时间并且是值得了解和使用的东西即使你后来决定websockets值得探索。我会为此目的推荐cljs-ajax
库。
您应该将fogus EDN library
添加到列表中,因为它是Ring中间件,它将处理浏览器和客户端之间的数据传输,无论您的首选传输方法如何。
您对授权库的选择实际上取决于您需要的授权类型。在该领域并不是一刀切。