使用函数java项目有什么经验?

Eli*_*jah 11 java functional-programming functional-java

我正在阅读以下问题 - 使用functional-java为Java生产项目添加闭包有多安全?我一直在考虑在我当前的项目中使用Functional Java项目.我想知道Stack Overflow的用户使用Functional Java项目的经历是什么?特别是,我对其中一些细节感到好奇:

  • 它是否提高了代码质量或清晰度?
  • 提高生产力?
  • 减少潜在的失败点?
  • 影响表现?

Apo*_*isp 10

我一直在使用FJ库的团队,我知道其他人.在一个团队中,它被用来替代一个不那么精致的本土图书馆,另一个团队取代了Google Collections.我也知道一些人从FJ中复制源代码以推出他们自己的实现.

在我看来,如果你必须使用Java,你应该使用像Functional Java这样的东西来让你的生活更轻松.

它是否提高了代码质量或清晰度?

以功能样式编写的代码更简洁,因此更清晰.该库附带并鼓励使用不可变数据结构,从而提高质量.该库还鼓励组合而不是继承,这提高了代码的可重用性.

提高生产力?

当然.具有更强大工具的开发人员更高效.根据我的经验,开发人员认为一流的功能使编程更容易,更愉快.快乐的程序员是高效的程序员.

减少潜在的失败点?

更具功能性的编程风格阻止了可变状态,从而消除了大量的错误.此外,更强大的抽象导致更少的重复,这减少了出错的地方的数量.

影响表现?

没有理由相信性能会受到这种或那种方式的影响.提供的数据结构是为了易于使用和表达而不是性能而设计的,但它们是针对它们的最佳编写的.与其他任何事情一样,驾驶方式比驾驶时更重要.例如,fj.data.List是一个链表,因此它具有O(n)随机访问和连接,因此您可以出于这些目的而避免使用它.相比之下,fj.data.Stream具有O(1)连接.