为什么我们需要在iteratee上使用scalaz.stream



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

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

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

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

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

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

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

如果你愿意分享你真正想要实现的目标,我可以更"准确"地告诉你好处,并给你一些快速的代码示例,希望这将证明以上的说法:-)

最新更新