请分享您的想法,参加2024年Clojure状态调查!

欢迎!请参阅关于页面以了解更多关于如何使用本站的信息。

0
ClojureScript

我正在尝试减小我们js包的大小,发现由于历史原因,我们有一个对Specter的依赖。它的优化大小为198.23 KB(真的大家伙)。而且我还没有找到ClojureScript的任何基准测试,只有一个问题https://github.com/nathanmarz/specter/issues/141

我想知道是否有人在生产环境中使用它(CLJS),基准测试怎么样?

2 答案

+2

Hi Aleksandr,
我们在Powernoodle.com的CLJS中使用Specter进行对象转换和从大型嵌套映射结构中进行子选择。我们使用om/next,我们的状态存储在一个非常复杂的映射中。Specter真正出色的地方在于,当你需要更改现有数据结构并获得相同类型的结构时,它与其他普通clojure函数不同,后者 tends to return sequables regardless of the input. 一旦你掌握了语法及其用法,Specter是一个非常强大的工具,并可以创建很直观和易读的代码。@nathanmarz在Clojure/Specter Slack频道上也非常有帮助 - 仅对于他想出这个想法就非常感谢他。我没有任何基准测试,但说实话,没有它我们的代码将会更复杂,而所有的Clojurists都讨厌复杂的代码 ;-)
Ian

by
非常感谢您的回答!我完全同意您的看法,复杂的代码是不可取的。

我发现在我们的项目中使用并不多,只在几个地方使用,现在不太清楚这到底值不值得,尤其是在考虑包大小的情况下。

无论如何,我很想看到ClojureScript的基准测试结果。
+2
by

虽然这不是精确的基准测试,但当我基于walk重构了ClojureScript的纯代码到一个使用Specter的版本(在一个进行递归转换的代码中),UI的响应速度从慢设备的几秒无响应变成了在慢设备上更快、更容易忍受。据我所知,速度提升了两个数量级(约100ms变为约2ms),这得益于自定义的Specter导航器。

...