欢迎!请参阅关于页面获取更多关于此如何运作的信息。
嗨,Sean。我想提出一个改变,主要是为了让ClojureScript更友好。
在一个单独的{{.cljc}}文件中将所有协议放在一起,在其它不同的文件中放置实现,将非常有用。这将为将来的某些实现提供ClojureScript端口打开门。
由于我只是浏览了代码,所以我不知道如何组织分离,但我想通过提出这个问题来探讨这个想法。
谢谢!
由:seancorfield发表的评论
由于core.cache是设计为可扩展的,所以这些协议可能被现有的用户代码使用,因此移动它们将是一个破坏性的改变。
由:arichiardi发表的评论
那真是太糟糕了,它们能否保持在核心文件中并移动实现到别处?
也许我们可以使用{{clojure.core.cache2}}?
是的,我认为这一点上可能需要一套全新的命名空间。协议在一个共同的命名空间中,然后可能每个实现都在一个单独的命名空间中,以便某些可以实现为clojure/cljs(如基本缓存)和另一些可以是clojure(如果接触Java)或cljc或cljs。
由于这两个库以各种方式绑定在一起,core.memoize可能也需要遵循同样的模式。
听起来像是个好计划,作为参考,我还会在这里留下(链接:https://github.com/burbma/cljs-cache 文本:cljs-cache)。