欢迎!请参见关于页面获取更多关于这项工作如何运作的信息。
我正在尝试减小我们的js包大小,并且发现由于历史原因,我们将Specter作为一个依赖项。其优化大小为198.23 KB(真的很大)。另外,我没有找到ClojureScript的基准测试,只有一个问题https://github.com/nathanmarz/specter/issues/141。
我想知道有人在生产环境中使用它(CLJS)吗?基准测试怎么样?
Hi Aleksandr,我们在Powernoodle.com的CLJS中用于对象转换和从大型嵌套映射结构中进行子选择。我们使用om/next,我们的状态存储在一个非常复杂的映射中。当您需要对现有数据结构进行更改并返回相同类型结构时,Specter真正闪光,这是不像使用普通clojure函数那样往往返回sequables的。一旦您掌握语法和其使用方式,Specter是一个非常强大的工具,并创建出非常直观和易于阅读的代码。另外,@nathanmarz在Clojure/Specter的Slack频道上非常乐于助人——仅仅因为梦想就能做到这一点——向他表示衷心的感谢。我没有基准测试,但是说实话,没有它,我们的代码将会变得更加复杂,而且所有Clojurists都讨厌复杂的代码;-)Ian
这不是一个精确的基准测试,但当我将一个基于 walk 的纯 ClojureScript 代码重构为使用 Specter(在一个执行递归转换的代码中)时,UI 从在慢速设备上长达几秒的非响应状态,变成了更快速且在慢速设备上可接受。依我回忆,性能提升了两个数量级(~100ms => ~2ms),这归功于一个定制的 Specter 导航器。