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

开发 开发工具
为什么我们要学习函数式编程?为获得更好的软件设计技术!下文的两张图为你解答如何更好的软件设计技术……

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

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

命令式编程

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

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

函数式编程

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

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

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

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

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

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

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

英文原文:Why Functional Matters: Your white board will never be the same

本文链接:http://www.aqee.net/why-functional-matters-your-white-board-will-never-be-the-same/

责任编辑:林师授 来源: 外刊IT评论
相关推荐

2012-03-07 17:24:10

戴尔咨询

2012-12-20 10:17:32

IT运维

2011-02-28 10:38:13

Windows 8

2021-07-12 23:53:22

Python交换变量

2010-01-04 10:19:37

vSphere

2017-05-25 15:02:46

联宇益通SD-WAN

2015-10-19 12:33:01

华三/新IT

2016-05-09 18:40:26

VIP客户缉拿

2020-02-14 14:36:23

DevOps落地认知

2023-03-20 08:19:23

GPT-4OpenAI

2018-07-10 11:05:55

Emoji苹果Google

2018-05-09 15:42:24

新零售

2009-02-04 15:43:45

敏捷开发PHPFleaPHP

2009-12-01 16:42:27

Gentoo Linu

2016-03-24 18:51:40

2009-06-12 15:26:02

2010-11-24 20:18:48

Microsoft L统一沟通

2019-01-03 14:39:08

Oracle甲骨文ORACLE

2022-05-05 21:47:32

Linuxls 命令

2015-08-25 09:52:36

云计算云计算产业云计算政策
点赞
收藏

51CTO技术栈公众号