函数式编程重新受到主流社区的关注。部分原因是因为功能范式的新特性能够很好地应对我们的行业向多元化转变。但不是最主要的原因。
应用函数式编程能极大提高编码质量。如果你真正深入理解了函数式编程范式,你的设计将在参考透明度(referential transparency )上上升到更高的层次。
参考透明度是一个非常理想的特性:无论任何时候任何位置,函数对同样的输入总是输出相同的结果。
命令式编程的主要缺陷是可变变量。函数式编程通常缺陷更少,且易于调试,因为定位引入错误值的位置比其他方式去推导错误赋值的特定上下文更容易。
自己的理解:oop中类是由状态和方法组成,方法执行不仅依赖方法入参本身,还依赖当前当前对象的其他状态,这可能导致缺陷的产生,且不易定位。
函数式编程并不适用所有场景。如复杂业务场景下,面向对象的领域对象开发模式(多对象的协作有助于降低复杂性)更适合。
总结
学习函数式编程有助于能应用到其他领域。函数式编程和OOP互相之间能有效补充。