在你的想法中,请分享 2024 年 Clojure 工程师状态调查!

欢迎!有关如何使用本站的信息,请参阅 关于 页面。

+11

如果你必须从头开始(Web 应用程序)新建一个项目(当然是在 #Clojure)你会选择什么栈?(后端、前端和所有中间层)。

最初的问题是在这里提出的: https://twitter.com/JacekSchae/status/1155852483270459392

7 个回答

+11

编辑

fulcro3[1] + crux[2]

《fulcro3》和《crux》目前处于测试版,所以相对于传统的 re-frame + postgres 应用程序来说,这可能是一个风险较高的选择,但我非常喜欢它们背后的宏伟想法。

这是一个基本上以数据驱动、支持时间旅行功能的 CQRS 全栈解决方案,一旦该技术成熟,它承诺将带来前所未有的生产力。

Fulcro 是最初吸引我进入 Clojure 的东西。用任何其他语言构建它都将是极其困难的 - JavaScript 世界的尝试包括 Apollo 或 Meteor,但就我个人观点而言,Fulcro 在设计决策方面做得更好(选择 Clojurescript 就是一个例子)。

[1] http://fulcro.fulcrologic.com/
[2] https://juxt.pro/crux/index.html
[3] https://github.com/souenzzo/graph-demo 支持的 react native 示例

Fulcro3 still in alpha state, but Fulcro 2 is not. The latter has been available for years and is not riskier than re-frame.
+3

我会使用RUM进行HTML模板和渲染,因为它有良好的服务器端渲染支持,可以稍后连接到React组件,或者简单地回退到纯HTML,并在Clojure和ClojureScript中工作。

如果需要更复杂的JS组件,我会在客户端使用ClojureScript和RUM配合React。

我可能会尝试使用Datomic Cloud来管理服务器端持久状态,以及使用Datascript来处理客户端临时状态。

我可能会用reitit来进行路由,用http-kit作为我的html客户端/服务器。感觉reitit的速度可能值得,它现在还支持ring和pedestal,并且对使用Clojure Spec的Swagger有很好的支持。http-kit提供了一个我只使用Clojure的HTML客户端/服务器,这正是我所喜欢的。

+2

reagent, re-frame, spec, bidi, ring, netty, aleph

+1

我更新了我的答案,因为我添加了功能。

我在前端使用hoplon,后端使用Chord进行RPC调用。通过REST接口连接到CouchBD。

我有一个基于figwheel-main的300行CLI工具和项目,我是从这个项目开始的
https://github.com/rpompen/mkproj-demo

它是由以下shell脚本生成的
https://github.com/rpompen/mkproj

我开始尽可能保持简单。它提供了一个到CouchDB后端的CRUD示例。

0

0

前端: Reagent+Reframe
后端: Pedestal
数据库: Datomic Cloud

0

对于我的当前项目,我正在使用

  • Fulcro 3
  • Pathom
  • Datomic
  • Pedestal
  • Lacinia
  • Deps.edn
  • Shadow-CLJS

服务器有两个图形API端点
/api是可读/写EQL[1],由Pathom解析器处理
/grapqhl是只读GraphQL,由Lacinia解析器处理
两者都是从单个EDN定义自动生成的。

尽管Lacinia在Clojure中简化GraphQL方面表现良好,但我更享受通过Fulcro和Pathom使用EQL API进行工作的过程。

[1] https://edn-query-language.org/eql/1.0.0/what-is-eql.html

...