最近,我一直在玩scalaz.iteratee和Play iteratee。我认为iteratee是一个很好的想法,提供模块化而不是旧的命令循环 - 目的是使用一个函数作为每个新行的处理程序,而不是从文件中获取字符串[]。
但是,当我查看scalaz.stream的功能概述时,它提到它的设计取代旧的iteratee实现,但它没有提到为什么他们想要替换它。
有人可以向我解释我们是否可以使用Stream,我们可以获得哪些功能和优点以及使用iteratee有什么缺点?
答案 0 :(得分:5)
与scalaz-stream相比,Iteratee更难处理。 Scalaz-stream在代码重用和组合方面也优于iteratees。
事实上整个"服务器"现在可以在scalaz-stream中实现,而不仅仅是像Iteratee模式那样的小程序或代码片段。
Scalaz-stream为您提供卓越的资源安全性,终止原因传播,微调并发控制,大量组合器,并且易于扩展。
我们现在的项目是200K + scalaz流代码,并且是复杂的多用户多宿主集群服务器,所有这些都在scalaz流中实现。
如果你愿意分享你想要达到的目标,那么我可以更多地"确切地说"在好处并给你一些快速的代码示例,希望证明上述声明: - )