Clojure的“丰富”网络应用程序

时间:2012-12-16 16:16:02

标签: web-applications clojure clojurescript

我在构建基于Clojure的Web应用程序时遇到了一些困难。这是一个简单的CRUD应用程序,我开始探索Clojure网络生态系统。我正在尝试使用不同的库,例如HiccupEnliveCompojureNoir(尽管Noir似乎处于弃用的边缘)。

我的问题实际上是两个问题。首先是建立clojure网络应用程序的公平缺乏。其次,我需要一些关于创建“丰富”html组件的提示。

我喜欢Clojure的方式是让不同的图书馆一起玩的便利性。用打嗝取代活泼,反之亦然。一切都发挥其单一而简单的作用。与JSF这样的复杂框架有很大不同。

但有一点:这种伟大的自由让我感到有些失落。在JSF中我知道everthing在哪里有它的位置。我使用Spring集成所有组件,Spring-Security来处理所有会话内容。组件库使我免于处理html,javascript和ajax问题的压力。

特别是前面提到的组件库是Clojure所缺少的。我发现自己实现的东西就像数据表一样,具有交替行颜色,分页,列排序,增量过滤等功能。它让我对如何同步这些组件的浏览器和服务器状态提出了疑问,尤其是在包含ajax时。我无法在网上找到任何成熟的答案。

框架的优势:一旦理解了规则和限制,您就可以构建应用程序并专注于业务规则。处理技术基础设施,不应分散注意力。

对Clojure世界有什么建议? ClojureScript One是解决方案吗?我还没有调查过。有没有人知道任何提供类似功能的组件库,例如RichFaces数据表?有没有一种处理ajax的首选方式?


1 个答案:

答案 0 :(得分:3)

我能给你的只是一些指导原则:

  • 在JSON或EDF中以客户端和服务器之间交换消息
  • 将您的GUI代码与客户端上的州管理代码分开
  • 将您的状态管理代码放在交叉中,以便您可以在浏览器外进行测试
  • 安排您的客户端GUI代码尽可能独立于特定库,转到具有活动社区和最少依赖关系的库