【问题标题】:What are your experiences using the functional java project?您使用函数式 Java 项目的经验是什么?
【发布时间】:2010-10-20 11:44:07
【问题描述】:

我正在阅读以下问题 - How safe would it be to use functional-java to add closures to a Java production project?,并且我一直在考虑在我当前的项目中使用 Functional Java project。我想知道 Stack Overflow 的用户使用 Functional Java 项目的体验如何?特别是,我对其中一些细节感到好奇:

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

【问题讨论】:

    标签: java functional-programming functional-java


    【解决方案1】:

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

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

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

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

    提高生产力?

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

    减少潜在的故障点?

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

    影响性能?

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-03
      • 1970-01-01
      • 1970-01-01
      • 2017-11-29
      • 2011-01-23
      • 2022-10-19
      • 2012-10-04
      • 2010-10-06
      相关资源
      最近更新 更多