欢迎!请查看关于页面了解更多该网站运行方式的信息。
嗨,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)。