欢迎!请查看关于页面以了解更多关于如何使用本网站的信息。
嗨,Sean。我想提出一个改变,主要是为了让ClojureScript更加友好。
将所有协议放在一个{{.cljc}}文件中,实现放在不同的文件中将非常有用。这将为将来的某些实现提供ClojureScript迁移的途径。
由于我刚刚浏览了代码,我并不完全清楚这种分离应该如何组织,但我希望通过这个问题来探讨这个想法。
谢谢!
评论由:seancorfield 提出
由于 core.cache 是为了可扩展性而设计的,所以这些协议可能已被现有的用户代码使用,因此移动它们将是一个破坏性更改。
评论由:arichiardi 提出
那么将它们保留在核心文件中并移到其他地方怎么样?
也许我们可以使用 {{clojure.core.cache2}}?
是的,我认为此时必须是一整套全新的命名空间。在同一个命名空间下有一个协议,然后每个实现可能在单独的命名空间下,这样一些可以是 clj/cljs(比如 BasicCache),其他可能是 clj(如果它们涉及 Java),或者 cljc 或 cljs。
由于这两个库以各种方式耦合,core.memoize 可能也需要这样做。
听起来是个好计划,为了参考,我还会在这里留下(链接:https://github.com/burbma/cljs-cache 文本:cljs-cache)的链接。