问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在Clojure里我应当使用什么web框架

发布网友 发布时间:2022-04-26 14:19

我来回答

2个回答

热心网友 时间:2022-05-11 03:19

在Clojure里有大量的web框架,但是初学者应该把他们自己的服务器栈移动到Ring生态系统。
我经常被Clojure的初学者问到的一个问题是“我应该使用什么web框架?”这是一个好问题。Python有Django。PHP有Drupal。当然Ruby有所有web框架之王,Ruby on Rails。
在Clojure里你应该使用什么框架?实际上这个问题是难以回答的。外面有很多web框架了。有人把 Compojure 叫做框架,虽然它真正是一个类库。 lib-noir 为你做了大量工作。然而有属于你的真正框架,像 Pedestal 或 Hoplon ,它们提供基础功能和解决web开发的抽象。所有这些项目是伟大的,但是对于初学者,我不得不推荐建立你自己的web栈,从Ring开始。
Compojure实际上只是一个路由类库,而不是框架。虽然有 playnice , bidi , Route One 和 gu 等其它替代品,但是你能够用它满足路由需要。如果你不想下决定,那就使用Compojure。它使用广泛、表现优秀。如果你想深入,可以看看其他文档。它们针对不同的场景各有优点。
lib-noir 来自于 Noir ,后者是一个web框架(现在废弃了)。它比较容易,还为你提供了一些管道,因此你刚好借助建好的大量基础设施来开始一个项目。lib-noir是以类库形式存在的基础设施。我还没有用过,但是很多人喜欢它。然而,当我研究它的时候,我发现它提供了太多我不需要的东西,或太过琐碎。如果得到了大规模的应用(像Rails),你就能得到生态系统的效应,这通常是良性的,但是还没有这样。lib-noir被应用了,只是完全不占优势。
Pedestal 有很多支持者。它的目标是通过提供使用ClojureScript、消息队列形式的、一个明智的前端环境来处理单页app。如果你需要“实时app”,它或许为是你准备的。尽管如此,我仍然警告你,它不适合Clojure初学者。Pedestal引入了大量新概念,甚至有经验的Clojure程序员也不得不去学习。 这个教程 又长又费力。如果你不了解Clojure,你去学习Pedestal会遇到问题的。
Hoplon 也是为web app设计的。它为你提供了用ClojureScript实现的DOM(包括自定义组件),数据流编程(像电子表格)和客户端-服务器端通信。这是勇敢的一步,但是再一次,需要你接受花很长时间才能理解的编程模型。如果你还不熟悉Clojure,你就是在自找麻烦。
外面还有其它框架。但是我推荐你考虑自己条件。如果你在学习Clojure,掌握web app如何工作的最好方法就是得到一个配置了一些基本handler的 Ring Jetty适配器。根据需要添加中间件。写一些自己的中间件。使用Compojure做路由。使用 Hiccup 生成HTML。这个安装将让你学到很多。
Ring仅仅是个函数。借助一些基本概念和Ring SPEC,你可以快速建立正是你想要的web服务器,你能够全面理解它。自己建立的经历能够让你在框架如何整合上受益良多。
况且,Ring有优势。大多数人写功能(以中间件或handler的形式)是以Ring为假设、而不是其它。因此保持靠近本质,你就会接近庞大的彼此兼容的、预编写的类库池。Ring就是Clojure web生态系统的所在地。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
华丽转身为什么在优酷看不了了之 《华丽转身:爱情不在服务区》txt全集下载 翡翠台华丽转身英文曲 matplotlib中plt.imshow函数画图出现的颜色问题 数字图像处理(c++ opencv):形态学图像处理-提取连通域 ...opencv做东西,网上的程序读着还可以,程序遇到问题不会改,一些函_百... 深度学习面试问题总结 | 传统图像处理——OpenCV 活虾如何在晚上保持存活状态进行保存? neu代表什么意思 民办学校和私立学校的区别是什么民办学校和私立学校的区别 汽车大灯贴膜对灯有坏处吗? 汽车大灯改色影响透光吗? clojure中怎么定义文件数组 软化水装置的产水量怎么算 Scala,Groovy,Clojure Kotlin 分别解决了Java 的什么痛点 尾灯熏黑有什么坏处,喷漆还是贴膜比较好 相比Scheme 与 Common Lisp,Clojure 有哪些坑 全自动软化水装置的工作程序 大灯贴膜影响光线吗? 为何Java程序员学习Clojure有优势? 大灯增亮膜,用起来的效果怎么样? clojure和scala的强弱类型,是解释型还是编译类型? 软水机的作用是什么?有人了解吗? 贴上汽车尾灯膜的话,会有哪方面的影响? 大灯贴膜影响照明吗 为什么要选择Clojure 尾灯贴TPU熏黑膜影响倒车吗 如何直接运行 Clojure 脚本文件 这个大灯熏黑会影响亮度吗 汽车大灯贴改色膜后会影响照明吗? 车灯贴膜到底好不好用?请教下大家! Clojure中Vector和List的区别及其相关函数 clojure 为什么没有火起来 汽车前大灯熏黑需要拆开车灯还是贴膜,大概费用在多少? 《Clojure经典实例》pdf下载在线阅读,求百度网盘云资源 python go clojure哪个语言简洁 《Clojure程序设计》pdf下载在线阅读全文,求百度网盘云资源 《Clojure编程乐趣》pdf下载在线阅读全文,求百度网盘云资源 手经常发烫 求《Clojure编程乐趣》全文免费下载百度网盘资源,谢谢~ 如何更新Clojure中的原子的向量元素 夏天手心发烫的原因有哪些 在英语中,conj是什么词性 Clojure,Java,Python,Ruby 的学习曲线陡峭程度有哪些区别 夏天手老发烫怎么办??? “码农”啥意思,为什么 最近手心老是发热是什么情况? 苹果笔记本下载安装了迅雷每次打开浏览器都有提示,怎么关闭??? 为什么苹果电脑一开机迅雷就弹出来,怎么才能关闭 怎么才能关闭,怎么的苹果电脑一开机迅雷就弹出来