2024 年 Clojure 状态调查中分享您的想法!

欢迎!请参阅关于页面了解有关如何使用本站的更多信息。

0
core.cache

嗨,Sean。我想提一个主要针对 ClojureScript 变得友好的变更。

将所有协议放在一个 {{.cljc}} 文件中,并不同的文件中放置实现将会非常实用。这将可能为未来一些实现的 ClojureScript 版本打开大门。

由于我只是浏览了代码,所以我并不确切地知道如何组织这个分离,但我要就这个想法提出这个问题。

谢谢!

5 个回答

0

评论者:seancorfield

由于 core.cache 设计为可扩展,协议可能被现有用户代码使用,因此移动它们将是一个破坏性的变更。

0

评论者:arichiardi

那真是太糟糕了,它们可以被保留在核心文件中,并将实现移到别处吗?

也许我们可以使用 {{clojure.core.cache2}}?

0

评论者:seancorfield

是的,我认为这到现在可能需要一个全新的命名空间集。在同一个公共命名空间中放置协议,然后每个实现可能在一个单独的命名空间中,这样可以有一些建立在 clj/cljs(如 BasicCache)上,其他可能如果是接触 Java 的话可能会是 clj 或 cljc 或 cljs。

并且 core.memoize 可能也需要遵循同样的做法,因为这两个库以各种方式耦合在一起。

0

评论者:arichiardi

听起来是一个不错的计划,作为参考,我还会在这里留下链接(链接:https://github.com/burbma/cljs-cache 文本:cljs-cache)。

0
参考资料:https://clojure.atlassian.net/browse/CCACHE-55(由 arichiardi 报告)
...