为什么函数式编程很重要:不一样的白板图

本文探讨了函数式编程如何改变软件设计思路,通过将程序视为数据流处理,有助于提高代码的可测试性和模块化,简化系统设计,提升敏捷开发效率。

为什么我们要学习函数式编程?为获得更好的软件设计技术!

  一天,我们设计了一个流程,来校对款项的收支平衡。下面这张图就是我们在几年前设计出的结果:

  那以后我们开始学习函数式编程。函数式编程让我们以数据流的方式思考过程处理:数据进来,做变换,过滤,计算,最终的结果就是输出。不仅软件是这样工作的,每段代码,每个函数,都模型化成数据输入,数据输出。中间没有状态的变换。

  按这种方式思考问题使我们得到了这样的流程图:

  把程序当成数据管道的思考方式使我们关注结果应该是什么,而不是每一步应该如何做。这种更高层次的思考问题的方式使得我们在系统设计阶段避免陷入细节实现的泥潭中。

  不管用什么语言写成解决方案,这样的方式思考能让我们获得下面的好处:

  * 功能细化。(黄色的框代表JIRA任务)需求在图上已经显得非常明白:输入什么,输出什么。每项任务都能独立的开发。

  * 每个字节都可测试。涉及到数据库的代码已经放到了外面;不仅如此,每个方框都完全由输入输出来定义。对于测试来说这是一种最简单的单元组件。

  这样一来,函数式的思考方式对敏捷编程(任务分解),TDD,和程序的可维护性都有好处。代码变的模块化。问题变得更容易分析,因为我们能够知道每一步骤数据的样子。

  相互独立,易于测试的组件:这就是函数式的。

  新的编程技巧是有趣,但新的画白板的技术却是一件大事。

转载于:https://www.cnblogs.com/cuiguanghe/archive/2013/03/24/2979745.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值