我们为什么需要函数式编程

1.如果你需要编写优秀的并发程序

在如今这个设备已经进入多核的时代,学习如何编写健壮的并发代码已经不再是一个候选项了。函数式编程提供一个思考并发的正确原则,并且催生了几个更高级别的并发而让并发工作更加简单。编写健壮的并发代码不再只是少数聪明人的游戏。

2.大多数程序只是在进行数据的管理

当你每天接收TB级别的数据,当你需要清洗、存储PB级别的数据并且需要对它们进行分析时,任何有关对象方面的开销对你来说都是难以接受的。尽管ORM和对象中间件在面向对象时代大受好评,因为我们可以通过直接操作业务对象从而尽量避免与SQL语句打交道。然而,它们性能开销在这个数据时代日渐被放大。或许在一个小团队里面,性能和存储并不是一个问题,然而,无论在什么团队,团队敏捷性始终是所有团队需要考虑的问题。试想一下,在日复一日,年复一年地程序增强中,团队如何保持灵活?团队如何让代码尽可能地保持简介?函数式编程能够直接地与基本数据集合打交道,最低限度地减少工作中对象模型的开销,同时还能避免复制以及促进重用。

3.函数式编程更加模块化

OOP的出现让许多人认为他们终于找到了一个建立可重用组件,大大减低成本和开发时间。然而,事实并不像人们想象的那么美好。绝大部分成功的可重用的库仅仅只是JDK、Spring框架等。剩下的那些我们需要的代码,我们不断地在一个工程接着一个工程去重写。对象的近乎无限的灵活性实际抑制了重用的潜力,因为在对象与对象如何进行互联我们都没几条统一的标准。其实,对象归根结底也只是数据的集合,这么看来,我们就找到一条更好的比对象低层次的标准抽象的路。这些标准就是基本集合如list、map和set以及一些原生的类型像数字定义明确的域概念(例如,金钱在金融应用)。总而言之,函数式编程定义了更加有用、容易重用、组合以及测试的抽象。

4.更快的工作效率

在开发周期越来越短的今天,敏捷开发越来越被重视。函数式编程能够使我们在需求不断改变、特定领域知识理解出现错误地情况下能够快速而从容地面对。

5.回归简单

函数式编程是为了对抗偶发复杂性(accidental complexity)而作出的反击,这种复杂性是我们认为添加上去的,而不是问题域的固有复杂性。




以上笔记来自 《Functional Programming for Java Developers》作者Dean Wampler  第一章Why Funtinal Programming?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值