11

最近,我一直在玩scalaz.iteratee和 Play 的iteratee。我认为 iteratee 是提供模块化而不是旧的命令式 while 循环的好主意——目的是使用一个函数作为每个新行的处理程序,而不是从文件中获取 string[]。

但是,当我查看 scalaz.stream 的功能概述时,它提到了它的设计是为了取代旧的 iteratee implementation,但没有提到他们为什么要替换它。

有人可以向我解释一下,如果我们可以 Stream,我们可以获得哪些功能和好处,以及使用 iteratee 的缺点是什么?

4

1 回答 1

5

与 scalaz-stream 相比,Iteratee 更难使用。Scalaz-stream 在代码重用和组合方面也优于迭代器。

事实上,整个“服务器”现在可以在 scalaz-stream 中实现,而不是像 Iteratee 模式那样只是小程序或代码片段。

Scalaz-stream 为您提供卓越的资源安全性、终止原因传播、微调并发控制、大量组合器并且易于扩展。

我们现在有 200K + scalaz 流代码的项目,并且是复杂的多用户多宿主集群服务器,全部在 scalaz 流中实现。

如果您愿意分享您真正想要实现的目标,我可以在收益方面更加“准确”,并为您提供一些快速的代码示例,希望能证明上述声明:-)

于 2014-08-30T05:42:58.080 回答