8

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

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

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

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

任何帮助将不胜感激,或者如果有人可以向我指出一些图表或解释或任何东西 - 那也很棒!

4

4 回答 4

7

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

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

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

也就是说,它仍然是 Alpha 版软件,工具仍然需要大量工作。

于 2012-02-10T15:55:44.703 回答
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 servlet

于 2012-02-10T06:11:56.217 回答
1

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

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

于 2013-04-04T17:17:04.923 回答
1

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

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

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

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

您可能已经注意到 clojure 的缺点之一是在为函数提供正确名称之后的行很长。我还没有找到解决办法。

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

于 2016-12-24T22:36:32.633 回答