在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?