【问题标题】:Development "model" for clojurescript/clojure applicationsclojurescript/clojure 应用程序的开发“模型”
【发布时间】:2012-02-09 21:55:25
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • Clojurescript 只是重写为 javascript,因此在“经典”模型中将 Java 替换为 Clojure 并将 Javascript 替换为 Clojurescript,您将拥有它。收益来自 Clojurescript 与 Clojure 非常相似。这意味着您可以在前端和后端之间共享应用程序逻辑。

标签: clojure clojurescript


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    3) 据我所知,Clojurescript 的唯一用途是作为更好的 javascript(这就是它更适合大型应用程序的原因),因为 Clojurescript 的缩小器部分也可用于 javascript

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

    【讨论】:

    • 我认为 ClojureScript 真正的开发困难主要是由于:1)它仍然是 alpha 质量软件,2)工具问题
    【解决方案3】:

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

    演示和文档可通过http://ganelon.tomeklipski.com/获取

    【讨论】:

      【解决方案4】:

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

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多