发展"模型"用于clojurescript / clojure应用程序

时间:2012-02-09 21:55:26

标签: clojure clojurescript

注意:我是业余的后端(Java)开发人员,在业余时间在Clojure工作,请原谅我的无知。

我正试图了解Clojurescript,以及它如何能够适应我正在进行的项目,或计划在未来继续工作。随着我在“经典”Web开发思维中成长(例如Clojure运行后端,通过JSON将数据分发到前端以在JS中处理或返回HTML页面以供浏览器渲染),我遇到了麻烦试图了解Clojurescript如何使事情比这个模型更好。

有人可以向我解释一下Clojurescript / Clojure开发的一般方法是什么,因为“Clojurescript One”项目名称表示应用程序开发将统一在一种语言下(如此)

  • 通常在应用程序的Clojurescript部分执行哪些任务?
  • 通常在应用程序的Clojure(例如后端)部分执行哪些任务?

任何帮助都会受到赞赏,或者如果有人能指出我的某些图表或解释或任何东西 - 这也会很棒!

4 个答案:

答案 0 :(得分:7)

我认为Clojure / ClojureScript应用程序的结构与X后端技术+ JavaScript非常相似。

使用Clojure和ClojureScript构建应用程序的一大好处 - 比JSON更丰富的数据格式(您可以使用任意键表示哈希映射和集合),而不会失去紧凑性。

JavaScript是一种很好的语言,但ClojureScript提供了很多好处。它在语义上更简单(功能性),带有丰富的标准库,强大的经过战斗测试的应用程序库(Google Closure),以及通过宏的高级语法抽象应用获得的所有好处。

也就是说,它仍然是非常多的alpha软件,工具仍然需要大量的工作。

答案 1 :(得分:2)

关于我的一些背景知识,我使用Clojurescript,JQuery,Vaadin,Servlets,JSP和许多其他Web技术开发。

1)Clojurescript比我根据需要使用的任何其他Web技术,Java,Clojure,Closure(带有s;),Closure Lib和Closurescript特定知识更难学习。

2)Clojurescript对于小应用程序没有意义。只有当你有很多客户端处理时才有意义

3)Clojurescript的唯一用途就是我看到的更好的javascript(这就是为什么它更适合更大的应用程序),因为Clojurescript的minifier部分也可用于javascript

4)只有客户端用Javascript编写,服务器用Clojure / Java servlets

答案 2 :(得分:1)

也许Ganelon微框架(偶然我是作者)将满足您的需求 - 执行模型与Vaadin类似:服务器端Clojure代码通过AJAX / JavaScript将UI更新推送到浏览器,但我们不默认情况下将应用程序状态存储在会话中。

演示和文档位于http://ganelon.tomeklipski.com/

答案 3 :(得分:1)

对我来说,clojure和clojurescript提供比混合堆栈更清晰的代码。只有一种语言可以考虑,代码很容易阅读。

在后端,clojure会执行java通常会做的事情。输入验证,保存到数据库,最重要的是,实现业务逻辑。我们的后端还使用棱柱模式按类型验证传入/传出数据。

简而言之:我们使用ClojureScript获得漂亮的代码并且编写速度很快。我们在编写UI组件时使用的是material-ui的ClojureScript版本。与JavaScript相比,我们必须编写更少的代码,并且我发现我们的UI组件代码比JavaScript对应代码更容易阅读。其中一个主要原因是通过编码语言缩短了结束标签并降低了噪音。使用ClojureScript进行开发非常快。

当然ClojureScript用于简单的输入验证,如RegExp用于电话号码等。

你可能已经注意到的clojure的一个缺点是在为函数指定了正确的名称之后的长行。我还没有发现银弹如何应对。

正如dnolen所说:ClojureScript仍在发展中。它现在比6个月前好多了,所以你不得不时不断地检查它的成熟度。