我在几个项目中使用 Datomic,是时候将所有通用代码移到一个小型实用程序库中了。
一个挑战是处理一个共享数据库uri
,大多数操作都依赖于它,但必须由使用该库的项目设置。我想知道是否有一种行之有效的方法来做到这一点。以下是我考虑过的一些替代方案:
在库中删除
uri
符号并将 uri 作为参数添加到访问数据库的每个函数alter-var-root
在 init 函数中通过 或类似机制对其进行更改将其作为动态变量保存在库中,
*uri*
并覆盖希望小的适配器层中的值,例如(def my-url ...bla ...)
(defn my-fun [args] (with-datomic-uri my-uri (apply library/my-fun args))
uri
像原子一样保存在图书馆里