2024 陈述 Clojure 调查中分享你的想法!

欢迎!请参阅关于页面,了解如何工作的更多信息。

+11

如果你必须从头开始一个新的项目(Web 应用程序),选用什么栈?(后端,前端以及中间的一切)。

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

7 个回答

+11

编辑

fulcro3[1] + crux[2]

目前fulcro3crux都是alpha版本,所以与标准的re-frame + postgres应用程序相比肯定是一个风险较高的选择,但我非常喜爱它们背后大胆的想法。

基本上是一个以数据驱动,支持时间旅行功能的CQRS全栈,在技术成熟后承诺前所未有的生产力。

Fulcro是吸引我进入Clojure的原因,在其它语言中构建它将极其困难 - JS世界 attempts with Apollo或Meteor,但在我看来Fulcro做出了更好的设计决策(选择Clojurescript是其中之一)。

[1] http://fulcro.fulcrologic.com/
[2] https://juxt.pro/crux/index.html
[3] https://github.com/souenzzo/graph-demo example with react native support

by
Fulcro3 还处于 alpha 版,而 Fulcro 2 已经不是了。后者已经存在了几年,并且比 re-frame 风险更低。
+3
by

我将使用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
by

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

+1

编辑了

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

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

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

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

为了开始,我会尽量使一切简单。它提供了一个到CouchDB后端的CRUD示例。

0

在前端,我一直在实验hx,并非常喜欢一些现代React API(特别是hooks)。对于状态管理,我总是喜欢re-frame,所以我最终开始了一个与hx兼容的移植版(hx-frame——非常早期的阶段,具有大部分re-frame API——不支持订阅信号函数和存在于re-frame中的大部分日志,所以至少是实验性的)。在后端,我一直在实验AWS和出现的无服务器模式。这就是我的样子,但它肯定还没有走出实验阶段。

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

...