我在构建一个基于Clojure的Web应用程序时遇到了一些困难。这是一个简单的CRUD应用程序,我开始探索Clojure Web生态系统。我正在尝试不同的库,例如Hiccup, Enlive, Compojure和Noir(虽然Noir似乎即将被淘汰)。
我的问题实际上有两个。首先是在构建clojure web应用程序时缺乏明显的惯例。其次,我需要一些关于创建“丰富”HTML组件的提示。
我喜欢Clojure的方式之一是轻松地使不同的库协同工作。替换enlive与hiccup以及反过来都不是什么大问题。每个库都扮演着单一而简单的角色。这与像JSF这样的复杂框架非常不同。
但问题在于:这种极大的自由让我感到有点迷茫。在JSF中,我知道每个东西都有其所在的位置。我使用Spring来整合所有组件,使用Spring-Security来处理所有会话相关的事务。组件库使我免于应对html、javascript和ajax问题的压力。
我的问题实际上有两个。首先是在构建clojure web应用程序时缺乏明显的惯例。其次,我需要一些关于创建“丰富”HTML组件的提示。
我喜欢Clojure的方式之一是轻松地使不同的库协同工作。替换enlive与hiccup以及反过来都不是什么大问题。每个库都扮演着单一而简单的角色。这与像JSF这样的复杂框架非常不同。
但问题在于:这种极大的自由让我感到有点迷茫。在JSF中,我知道每个东西都有其所在的位置。我使用Spring来整合所有组件,使用Spring-Security来处理所有会话相关的事务。组件库使我免于应对html、javascript和ajax问题的压力。
特别是前面提到的组件库是我在Clojure中所缺少的。我发现自己需要实现一些功能,如具有交替行颜色、分页、列排序、增量过滤等功能的数据表。而当涉及到ajax时,我还需要考虑如何同步此类组件的浏览器和服务器状态。我在网络上找不到任何成熟的答案。
框架的优点在于:一旦你理解了规则和限制,就可以构建你的应用程序并专注于业务规则。技术基础设施已经处理好了,不应该成为干扰。
对于Clojure世界,有什么建议吗?ClojureScript One是一个解决方案吗?我还没有研究过它。是否有任何组件库提供类似RichFaces datatable的功能?是否有处理ajax的首选方式?