在构建基于Clojure的 Web 应用程序时,我遇到了一些困难。这是一个简单的 CRUD 应用程序,我开始探索 Clojure 网络生态系统。我正在尝试不同的库,例如Hiccup、Enlive、Compojure和Noir(尽管 Noir 似乎处于弃用的边缘)。
我的问题实际上是两个问题。首先是明显缺乏构建 clojure web 应用程序的约定。其次,我需要一些有关创建“丰富”html 组件的提示。
我喜欢 Clojure 方式的地方在于可以轻松地让不同的库一起运行。用打嗝代替活跃,反过来也没什么大不了的。一切都扮演着单一而简单的角色。与 JSF 之类的复杂框架有很大不同。
但重点是:这种巨大的自由让我感到有些失落。在 JSF 中,我知道一切都有它的位置。我使用 Spring 来集成所有组件,使用 Spring-Security 来处理所有会话内容。组件库让我从处理 html、javascript 和 ajax 问题的压力中解脱出来。
尤其是前面提到的组件库是我在 Clojure 中所缺少的。我发现自己实现了诸如具有交替行颜色、分页、列排序、增量过滤器等功能的数据表之类的东西。它给我留下了关于如何同步这些组件的浏览器和服务器状态的问题,尤其是在包含 ajax 时。我无法在网上找到任何成熟的答案。
框架的优势:一旦您了解了规则和限制,您就可以构建您的应用程序并专注于业务规则。技术基础设施已得到处理,不应分散注意力。
对 Clojure 世界有什么建议?ClojureScript One是一种解决方案吗?我还没有调查它。有谁知道任何提供类似功能的组件库,例如 RichFaces 数据表?是否有处理 ajax 的首选方式?