11

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

我的问题实际上是两个问题。首先是明显缺乏构建 clojure web 应用程序的约定。其次,我需要一些有关创建“丰富”html 组件的提示。

我喜欢 Clojure 方式的地方在于可以轻松地让不同的库一起运行。用打嗝代替活跃,反过来也没什么大不了的。一切都扮演着单一而简单的角色。与 JSF 之类的复杂框架有很大不同。

但重点是:这种巨大的自由让我感到有些失落。在 JSF 中,我知道一切都有它的位置。我使用 Spring 来集成所有组件,使用 Spring-Security 来处理所有会话内容。组件库让我从处理 html、javascript 和 ajax 问题的压力中解脱出来。

尤其是前面提到的组件库是我在 Clojure 中所缺少的。我发现自己实现了诸如具有交替行颜色、分页、列排序、增量过滤器等功能的数据表之类的东西。它给我留下了关于如何同步这些组件的浏览器和服务器状态的问题,尤其是在包含 ajax 时。我无法在网上找到任何成熟的答案。

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

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


4

1 回答 1

4

我能给你的只是一些指导方针:

  • 以 JSON 或 EDF 在客户端和服务器之间交换消息
  • 将您的 GUI 代码与客户端上的状态管理代码分开
  • 将您的状态管理代码交叉放置,以便您可以在浏览器之外对其进行测试
  • 安排您的客户端 GUI 代码尽可能独立于特定库,选择具有活跃社区和最少依赖关系的库
于 2012-12-16T23:19:23.267 回答