2009-04-20 44 views
11

我读了以下问题 - 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项目?

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

回答

9

我一直在使用FJ图书馆的团队,而且我了解其他人。在一个团队中,它被用作替代一个不太精美的本土图书馆,另一个团队取代了Google Collections。我也知道一些人从FJ复制源代码来推出他们自己的实现。

在我看来,如果你必须使用Java,你应该使用类似Java功能,使您的生活更轻松。

它是否增加了代码质量或清晰度?

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

提高生产力?

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

减少潜在的故障点?

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

影响性能?

没有理由相信性能会受到这种或那种方式的影响。所提供的数据结构是专为易用性和表现力,而不是性能,但他们最理想的是,它们是什么。和其他任何东西一样,你驾驶的方式比你驾驶的更重要。例如,fj.data.List是一个链表,因此它具有O(n)随机访问和串联,因此您可以为此避免它。 fj.data.Stream通过比较具有O(1)级联。

相关问题