在clojure中处理状态是否有一种惯用的方式?

我正在编写几个端点管理调度程序,为此我使用了石英砂。

我希望计划程序实例能够在计划,重新计划和非计划函数中可见,最简单的方法是创建一个原子,但我想这不是阻止代码闻闻的最佳方式。

我想知道在clojure中处理状态是否有一种惯用的方式?


常用的方法是使用像Component或Integrant这样的库来管理状态的生命周期和依赖注入。

在这些情况下,你最终会得到一个包含相关状态系统的单个原子。

根据我的个人经验,我使用Quartzite和Component - 我有一个可用于启动/停止/计划等的调度程序组件。

我最近更喜欢Integrant,并将从Component中慢慢移动我的项目。


我相信,在你的代码中有一个原子是确实可以的,但是尽可能少地存储数据,只有那些真正需要改变的数据。

你无法完全避免完美状态,原子对此非常重要。

链接地址: http://www.djcxy.com/p/66883.html

上一篇: Is there an idiomatic way handle state in clojure?

下一篇: What's the idiomatic way to keep track of previous values in clojure?