欢迎!请参阅关于页面了解有关如何使用本站的更多信息。
嗨,Sean。我想提一个主要针对 ClojureScript 变得友好的变更。
将所有协议放在一个 {{.cljc}} 文件中,并不同的文件中放置实现将会非常实用。这将可能为未来一些实现的 ClojureScript 版本打开大门。
由于我只是浏览了代码,所以我并不确切地知道如何组织这个分离,但我要就这个想法提出这个问题。
谢谢!
评论者:seancorfield
由于 core.cache 设计为可扩展,协议可能被现有用户代码使用,因此移动它们将是一个破坏性的变更。
评论者:arichiardi
那真是太糟糕了,它们可以被保留在核心文件中,并将实现移到别处吗?
也许我们可以使用 {{clojure.core.cache2}}?
是的,我认为这到现在可能需要一个全新的命名空间集。在同一个公共命名空间中放置协议,然后每个实现可能在一个单独的命名空间中,这样可以有一些建立在 clj/cljs(如 BasicCache)上,其他可能如果是接触 Java 的话可能会是 clj 或 cljc 或 cljs。
并且 core.memoize 可能也需要遵循同样的做法,因为这两个库以各种方式耦合在一起。
听起来是一个不错的计划,作为参考,我还会在这里留下链接(链接:https://github.com/burbma/cljs-cache 文本:cljs-cache)。