Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在clojure中有一种惯用的处理状态的方法吗?_Clojure_Global_State - Fatal编程技术网

在clojure中有一种惯用的处理状态的方法吗?

在clojure中有一种惯用的处理状态的方法吗?,clojure,global,state,Clojure,Global,State,我正在编写两个端点来管理一个调度程序,我使用它 我想让调度器实例在schedule、reschedule和unschedule函数中可见,最简单的方法是创建一个atom,但我想这不是防止代码发臭的最佳方法 我想知道clojure中是否有一种惯用的处理状态的方法?我相信,在代码中有一个atom是可以的,但是在其中存储尽可能少的数据,只存储那些真正需要更改的数据 你不能完全避免状态,原子在这方面很好。我相信,在代码中有一个原子是很好的,但是在其中存储尽可能少的数据,只存储那些真正需要更改的数据 你无

我正在编写两个端点来管理一个调度程序,我使用它

我想让调度器实例在schedule、reschedule和unschedule函数中可见,最简单的方法是创建一个atom,但我想这不是防止代码发臭的最佳方法


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

我相信,在代码中有一个atom是可以的,但是在其中存储尽可能少的数据,只存储那些真正需要更改的数据


你不能完全避免状态,原子在这方面很好。

我相信,在代码中有一个原子是很好的,但是在其中存储尽可能少的数据,只存储那些真正需要更改的数据


你无法避免完全拥有状态,原子就是最好的选择。

一种常见的方法是使用像or这样的库来管理状态的生命周期和依赖注入

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

根据我个人的经验,我使用石英岩和组件-我有一个调度器组件,可用于启动/停止/调度等


现在我更喜欢Integrant,并且会慢慢地将我的项目从组件转移出去。

一种常见的方法是使用类似or的库来管理状态的生命周期和依赖注入

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

根据我个人的经验,我使用石英岩和组件-我有一个调度器组件,可用于启动/停止/调度等

现在我更喜欢Integrant,我会慢慢地将我的项目从组件转移到组件