为什么我们需要scalaz.stream而不是iteratee?

时间:2014-08-29 02:28:31

标签: scala scalaz iterate scalaz-stream

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

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

有人可以向我解释我们是否可以使用Stream,我们可以获得哪些功能和优点以及使用iteratee有什么缺点?

1 个答案:

答案 0 :(得分:5)

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

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

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

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

如果你愿意分享你想要达到的目标,那么我可以更多地"确切地说"在好处并给你一些快速的代码示例,希望证明上述声明: - )