我正在阅读以下问题 - How safe would it be to use functional-java to add closures to a Java production project?我一直在考虑在我当前的项目中使用Functional Java project。我想知道Stack Overflow的用户使用Functional Java项目的经历是什么?特别是,我对其中的一些细节感到好奇:
答案 0 :(得分:10)
我一直在使用FJ库的团队,我知道其他人。在一个团队中,它被用来替代一个不那么精致的本土图书馆,另一个团队取代了Google Collections。我也知道一些人从FJ中复制源代码以推出他们自己的实现。
在我看来,如果你必须使用Java,你应该使用像Functional Java这样的东西来让你的生活更轻松。
它是否提高了代码质量或清晰度?
以功能样式编写的代码更简洁,因此更清晰。该库附带并鼓励使用不可变数据结构,从而提高质量。该库还鼓励组合而不是继承,这提高了代码的可重用性。
提高生产力?
当然。具有更强大工具的开发人员更高效。根据我的经验,开发人员认为一流的功能使编程更容易,更愉快。快乐的程序员是高效的程序员。
减少潜在的失败点?
更具功能性的编程风格阻止了可变状态,从而消除了大量的错误。此外,更强大的抽象导致更少的重复,这减少了出错的地方的数量。
影响表现?
没有理由相信表现会受到某种方式的影响。提供的数据结构是为了易于使用和表达而不是性能而设计的,但它们是针对它们的最佳编写的。与其他任何事情一样,驾驶方式比驾驶时更重要。例如,fj.data.List是一个链表,因此它具有O(n)随机访问和连接,因此您可以出于这些目的而避免使用它。相比之下,fj.data.Stream具有O(1)连接。