我一直在使用FJ图书馆的团队,而且我了解其他人。在一个团队中,它被用作替代一个不太精美的本土图书馆,另一个团队取代了Google Collections。我也知道一些人从FJ复制源代码来推出他们自己的实现。
在我看来,如果你必须使用Java,你应该使用类似Java功能,使您的生活更轻松。
它是否增加了代码质量或清晰度?
以功能风格编写的代码更简洁,因此更清晰。该库附带并鼓励使用不可变数据结构,从而提高质量。该库还鼓励通过继承来组合,这可以提高代码的可重用性。
提高生产力?
当然。具有更强大工具的开发人员更高效。根据我的经验,开发人员认为,一流的功能使编程更轻松,更愉快。快乐的程序员是富有成效的程序员。
减少潜在的故障点?
更实用的编程风格不鼓励可变状态,这消除了大量的错误。而且,更强大的抽象会减少重复次数,从而减少出现问题的地方的数量。
影响性能?
没有理由相信性能会受到这种或那种方式的影响。所提供的数据结构是专为易用性和表现力,而不是性能,但他们最理想的是,它们是什么。和其他任何东西一样,你驾驶的方式比你驾驶的更重要。例如,fj.data.List是一个链表,因此它具有O(n)随机访问和串联,因此您可以为此避免它。 fj.data.Stream通过比较具有O(1)级联。