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。

鉴于这两个库以多种方式耦合,核心的memoize可能也需要采取类似的做法。

0票数

评论来自:arichiardi

听起来是个不错的计划,因此作为参考,我将在下面也留下链接(链接:https://github.com/burbma/cljs-cache 文本:cljs-cache)。

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