2024年Clojure调查中分享你的看法!

欢迎!请查看关于页面以了解更多关于如何操作的信息。

+11

如果你要从零开始创建一个新项目(web应用),你会选择什么堆栈?(后端,前端,以及之间的所有内容)。

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

7 个答案

+11

编辑

fulcro3[1] + crux[2]

《fulcro3》和《crux》目前都是alpha版本,所以它肯定是一个比标准《re-frame》+《postgres》应用程序更加冒险的选择,但我非常喜欢它们背后的雄心勃勃的想法。

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

《Fulcro》是首先吸引我进入Clojure的一件事情。在任何其他语言中构建它都是非常困难的——JS领域有通过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 仍处于 alpha 版本,而 Fulcro 2 并不是。后者已经存在多年,并且比 re-frame 的风险要小。
+3

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

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

我可能会尝试 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

...