【问题标题】:What are your experiences using the functional java project?您使用函数式 Java 项目的经验是什么?
【发布时间】:2010-10-20 11:44:07
【问题描述】:
【问题讨论】:
标签:
java
functional-programming
functional-java
【解决方案1】:
我曾在一个使用 FJ 库的团队中工作,而且我认识其他人。在一个团队中,它被用来替代一个不太完善的本土图书馆,在另一个团队中,它取代了 Google Collections。我也知道有些人抄袭 FJ 的源代码来推出自己的实现。
在我看来,如果你必须使用 Java,你应该使用函数式 Java 之类的东西来让你的生活更轻松。
它是否提高了代码质量或清晰度?
以函数式编写的代码更简洁,因此更清晰。该库附带并鼓励使用不可变数据结构,从而提高质量。该库还鼓励组合而不是继承,这提高了代码的可重用性。
提高生产力?
当然。拥有更强大工具的开发人员效率更高。以我的经验,开发人员认为一流的功能使编程更容易和更愉快。快乐的程序员是高效的程序员。
减少潜在的故障点?
更实用的编程风格不鼓励可变状态,这消除了一大类错误。此外,更强大的抽象会导致更少的重复,从而减少出现问题的地方的数量。
影响性能?
没有理由相信性能会以某种方式受到影响。提供的数据结构是为易用性和表达性而非性能而设计的,但它们的编写是针对它们的本质而优化的。与其他任何事情一样,驾驶方式比驾驶方式更重要。例如, fj.data.List 是一个链表,因此它具有 O(n) 随机访问和连接,因此出于这些目的您应避免使用它。相比之下,fj.data.Stream 具有 O(1) 级联。