Clojure China

Edn 的 diff 包用起来怎么样?

#1

主要场景是从服务端同步数据到客户端, 用 diff 能减小传输的体积
我原先在 js 里用的是封装过的库, star 也挺多

但是看 Clojure 这边两个库 star 都比较少, 不知道怎么分辨



有没有同学用过这些库, 能不能提供一些经验?

#2

一直在用 clojure.data/diff, 其他都没有使用过

#3

翻了下文档, 这个 diff 出来的结果看起来是不能做 patch 的

#4

关于 clojure.data/diff,感觉可以自己写一个 patch-diff 的函数,有一个问题是 nil 不太好处理。
你上面提到的两个 library,Skinney/differ 似乎还在维护,另外一个最后一个 commit 是 2011 年。可以试一下 differ,有需要的话提 issue/PR。

#5

我自己尝试用 JavaScript 写过简单情况的 diff patch…



然而涉及到有性能方面的问题, 还不了解应该怎么测试和处理,
比如文本 diff 过程有个动态规划算法绕得我晕晕的.