11

我正在阅读以下问题 -使用功能 Java 向 Java 生产项目添加闭包有多安全?我一直在考虑在我当前的项目中使用Functional Java项目。我想知道 Stack Overflow 的用户使用 Functional Java 项目的体验如何?特别是,我对其中一些细节感到好奇:

  • 它是否提高了代码质量或清晰度?
  • 提高生产力?
  • 减少潜在的故障点?
  • 影响性能?
4

1 回答 1

10

我一直在一个使用 FJ 库的团队中,我知道其他人。在一个团队中,它被用来替代一个不太完善的本土图书馆,在另一个团队中,它取代了 Google Collections。我也知道有些人抄袭 FJ 的源代码来推出自己的实现。

在我看来,如果你必须使用 Java,你应该使用函数式 Java 之类的东西来让你的生活更轻松。

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

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

提高生产力?

确实。拥有更强大工具的开发人员效率更高。以我的经验,开发人员认为一流的功能使编程更容易和更愉快。快乐的程序员是高效的程序员。

减少潜在的故障点?

更实用的编程风格不鼓励可变状态,这消除了一大类错误。此外,更强大的抽象会导致更少的重复,从而减少出现问题的地方的数量。

影响性能?

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

于 2009-04-20T05:33:43.020 回答