Ada*_*deg 65 comparison frameworks clojure web-frameworks
Clojure有一些Web框架
还有一些用于处理某些Web开发子任务的库,例如
还有数百个Java库可供使用.某些方面,已经讨论过在这里和他们两个的比较了一下.
我想知道这些框架/组件在成熟度,范围,开发的容易程度,Django/RoR感觉等方面的比较.
Ray*_*yne 41
当我第一次开始使用Web开发时,它就是Clojure.我没有与web开发经验,之前在所有.在我的生活中,我无法想象Compojure.我不知道从那时起(不久以前)是否已经改进了初学者文档,但当时我无法管理它.一位朋友向我指出了Mustache,在阅读了README之后,我能够将http://try-clojure.org的当前状态放在一起.所以,就易用性而言,我认为Mustache为我带来了蛋糕.
然而,如果这已经在存在的时候,我可能会唱反调.
虽然与其他框架有很大不同,但Conjure看起来非常酷.鉴于我对网络开发的总体经验非常有限,我在这个问题上没有多少发言权,但是Conjure对我来说有点不公平.它感觉不对劲.可能只是因为我不习惯它做事的方式.
更新:我写这篇文章已经有一段时间了.很多事情都发生了变化.没有多少人使用Mustache,并且它并没有真正积极维护,尽管它足够完整(并且足够简单)它可能仍然有效,我现在建议改用Compojure或Noir.这两个目前都是维护框架,两者都很出色.
更新2:Noir已被弃用了相当长一段时间,其大部分功能都转移到了一个库,该库设计用于来自compojure /其他基于环的Web框架lib-noir.
Tim*_*m X 10
从框架角度思考可能是一个错误.更好的方法是根据您组合的库组件进行思考,以获得最适合您要求的"框架".
我过去曾使用过许多框架.他们中的大多数人都非常出色地完成了基本应用程序的运行.然而,毫无例外,我发现所有这些都经常变得令人沮丧.通常是由于太多的样板或只是必须跳过与您正在开发的应用无关的箍.
当我第一次来到Clojure时,我开始寻找框架,但后来意识到这是错误的方法.相反,我发现从一个基本的环形应用程序开始然后在我需要它们时添加库会好得多.这看起来似乎是一个更大的学习曲线,但实际上事实证明它同样有效,因为你没有被迫学习一堆你通常不需要的框架脚手架.
但是,我发现查看各种框架非常有用,因为它为我提供了如何最好地集成库的想法,更重要的是IMO,如何最好地构建lein project.clj文件以最适合您想要的工作流程.
我发现以下模板非常有用.我没有"按原样"使用它们中的任何一个,但是已经修改/窃取了其中许多人的想法,以开发最适合我正在使用的应用程序的框架
Luminus和Luminus模板提供了非常广泛的框架.我发现它们对于许多应用程序来说有点"沉重",但是有一些很好的例子可以说明如何将各种Clojure库集成到您的应用程序中.主网站还有一些有用的文档.
Reagent Project包含一个试剂模板,为使用Reagent(react.js)ClojureScript支持的应用程序提供了良好的起点.我发现这是创建具有良好Javascript集成的应用程序的最简单的ClojureScript库之一.
lein-figwheel是一个非常有趣的模板,使用figwheel提供clojurescript的动态加载,以便在修改代码时在浏览器中看到ClojureScript的更改.许多其他模板现在已将此功能添加到他们自己的模板中.Luminus和Reagent模板最初是以Om为开发的,现在还在其模板中集成了Figwheel功能.真正展示了Clojure和ClojureScript在交互式开发方面的一些优势.
Compojure Template是一个很好的起点.它建立了一个非常基本的基于组件的项目,包含所有基本的环和组件.开始使用Clojure Web开发的好方法,因为它很简单,并且允许您在淹没所有其他选项之前专注于基础知识.
还有许多其他模板和框架,其中许多我尚未有时间查看.这些天,我经常从compojure模板或试剂模板开始,然后在需要时添加额外的位.我通常还包括用于模板的selmar,并使用与Luminus基本相同的配置.
也许为您的Web开发获得一个好的"框架"最重要的部分是试验和理解lein如何工作以及lein project.clj文件.拥有一个好的project.clj文件将决定您的工作流程.拥有正确的配置文件,能够以不同的方式启动repl并加载不同的库,这些库允许您启动figwheel或浏览器repl或生成jar等,这些都与您的project.clj文件有关.做到这一点,您的环境将提供您所需的工作流程.
| 归档时间: |
|
| 查看次数: |
29948 次 |
| 最近记录: |