自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么函數(shù)式編程很重要:不一樣的白板圖

開發(fā) 開發(fā)工具
為什么我們要學(xué)習(xí)函數(shù)式編程?為獲得更好的軟件設(shè)計技術(shù)!下文的兩張圖為你解答如何更好的軟件設(shè)計技術(shù)……

為什么我們要學(xué)習(xí)函數(shù)式編程?為獲得更好的軟件設(shè)計技術(shù)!

一天,我們設(shè)計了一個流程,來校對款項的收支平衡。下面這張圖就是我們在幾年前設(shè)計出的結(jié)果:

命令式編程

那以后我們開始學(xué)習(xí)函數(shù)式編程。函數(shù)式編程讓我們以數(shù)據(jù)流的方式思考過程處理:數(shù)據(jù)進來,做變換,過濾,計算,最終的結(jié)果就是輸出。不僅軟件是這樣工作的,每段代碼,每個函數(shù),都模型化成數(shù)據(jù)輸入,數(shù)據(jù)輸出。中間沒有狀態(tài)的變換。

按這種方式思考問題使我們得到了這樣的流程圖:

函數(shù)式編程

把程序當成數(shù)據(jù)管道的思考方式使我們關(guān)注結(jié)果應(yīng)該是什么,而不是每一步應(yīng)該如何做。這種更高層次的思考問題的方式使得我們在系統(tǒng)設(shè)計階段避免陷入細節(jié)實現(xiàn)的泥潭中。

不管用什么語言寫成解決方案,這樣的方式思考能讓我們獲得下面的好處:

* 功能細化。(黃色的框代表JIRA任務(wù))需求在圖上已經(jīng)顯得非常明白:輸入什么,輸出什么。每項任務(wù)都能獨立的開發(fā)。

* 每個字節(jié)都可測試。涉及到數(shù)據(jù)庫的代碼已經(jīng)放到了外面;不僅如此,每個方框都完全由輸入輸出來定義。對于測試來說這是一種最簡單的單元組件。

這樣一來,函數(shù)式的思考方式對敏捷編程(任務(wù)分解),TDD,和程序的可維護性都有好處。代碼變的模塊化。問題變得更容易分析,因為我們能夠知道每一步驟數(shù)據(jù)的樣子。

相互獨立,易于測試的組件:這就是函數(shù)式的。

新的編程技巧是有趣,但新的畫白板的技術(shù)卻是一件大事。

英文原文: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/

責(zé)任編輯:林師授 來源: 外刊IT評論
相關(guān)推薦

2012-12-20 10:17:32

IT運維

2012-03-07 17:24:10

戴爾咨詢

2011-02-28 10:38:13

Windows 8

2021-07-12 23:53:22

Python交換變量

2016-05-09 18:40:26

VIP客戶緝拿

2010-01-04 10:19:37

vSphere

2020-02-14 14:36:23

DevOps落地認知

2017-05-25 15:02:46

聯(lián)宇益通SD-WAN

2015-10-19 12:33:01

華三/新IT

2023-03-20 08:19:23

GPT-4OpenAI

2018-07-10 11:05:55

Emoji蘋果Google

2018-05-09 15:42:24

新零售

2009-06-12 15:26:02

2009-02-04 15:43:45

敏捷開發(fā)PHPFleaPHP

2009-12-01 16:42:27

Gentoo Linu

2010-11-24 20:18:48

Microsoft L統(tǒng)一溝通

2016-03-24 18:51:40

2015-08-04 14:49:54

Discover

2009-07-07 10:44:14

多態(tài)

2013-01-11 18:10:56

軟件
點贊
收藏

51CTO技術(shù)棧公眾號