clojurescript/clojure 应用程序的开发"model"



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

我正试图了解Clojurescript,以及它如何可能与我正在进行或计划在未来进行的项目相适应。由于我是在"经典"的web开发思维中长大的(例如,Clojure运行后端,通过JSON将数据分发到前端以在JS中处理,或者返回HTML页面供浏览器渲染),我很难理解Clojurecrept如何使事情变得比这个模型更好。

有人能向我解释一下Clojuescrapt/Clojure开发的一般方法是什么吗?因为"Clojurecrapt One"项目的名字意味着应用程序开发将统一在一种语言下(比如)

  • 在应用程序的Clojurscript部分通常会完成哪些任务
  • 应用程序的Clojure(例如后端)部分通常会完成哪些任务

任何帮助都将不胜感激,或者如果有人能给我指一些图表或解释或任何东西,那也太好了!

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

使用Clojure和ClojureScript构建应用程序的一大好处是,它是一种比JSON更丰富的数据格式(您可以用任意键表示哈希图和集),同时又不会失去紧凑性。

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

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

关于我的一些背景知识,我已经使用Clojuescrapt、JQuery、Vaadin、Servlet、JSP和许多其他web技术进行了开发。

1) Clojuescript比我根据您的需要使用的任何其他web技术都更难学习,Java、Clojure、Closure(带s;)、ClosureLib和Closurescript特定知识。

2) Clojuescrapt对于一个小应用程序来说没有意义。只有当你有ALOT的客户端处理时,这才有意义

3) 据我所见,Clojuescrapt的唯一用途是作为一个更好的javascript(这就是为什么它更适合大型应用程序),因为Clojuescript的较小部分也可用于javascript。

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

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

演示和文档可在http://ganelon.tomeklipski.com/

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

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

简而言之,前端:我们使用ClojureScript获得了漂亮的代码,而且编写速度很快在编写ui组件时,我们使用的是材料ui的ClojureScript版本。与JavaScript相比,我们必须编写更少的代码,我发现我们的UI组件代码比JavaScript组件代码更容易阅读。其中一个主要原因是较短的结束标记和较少的编码语言噪音。ClojureScript的开发速度相当快。

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

您可能已经注意到clojure的一个缺点是,在为函数指定正确的名称后会出现很长的行。我还没有找到解决这个问题的灵丹妙药。

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

最新更新