編程范式:命令式編程(Imperative)谢澈、聲明式編程(Declarative)和函數(shù)式編程(Functional)

最近接觸到了K8S的架構(gòu),其中有一點(diǎn)很重要的是整體架構(gòu)采用的是聲明式編程粗俱,主要的編程范式有三種:命令式編程说榆,聲明式編程函數(shù)式編程

命令式編程:

命令式編程的主要思想是關(guān)注計(jì)算機(jī)執(zhí)行的步驟寸认,即一步一步告訴計(jì)算機(jī)先做什么再做什么娱俺。
比如:如果你想在一個(gè)數(shù)字集合 collection(變量名) 中篩選大于 5 的數(shù)字,你需要這樣告訴計(jì)算機(jī):
第一步废麻,創(chuàng)建一個(gè)存儲(chǔ)結(jié)果的集合變量 results
第二步模庐,遍歷這個(gè)數(shù)字集合collection烛愧;
第三步:一個(gè)一個(gè)地判斷每個(gè)數(shù)字是不是大于 5,如果是就將這個(gè)數(shù)字添加到結(jié)果集合變量 results 中掂碱。

代碼實(shí)現(xiàn)如下:

List<int> results = new List<int>();
foreach(var num in collection)
{
    if (num > 5)
          results.Add(num);
}

很明顯怜姿,這個(gè)樣子的代碼是很常見(jiàn)的一種,不管你用的是 C, C++還是 C#, Java,Javascript,BASIC,Python,Ruby 等等疼燥,你都可以以這個(gè)方式寫(xiě)沧卢。

聲明式編程:

聲明式編程是以數(shù)據(jù)結(jié)構(gòu)的形式來(lái)表達(dá)程序執(zhí)行的邏輯。它的主要思想是告訴計(jì)算機(jī)應(yīng)該做什么醉者,但不指定具體要怎么做但狭。
SQL 語(yǔ)句就是最明顯的一種聲明式編程的例子,例如:

 SELECT * FROM collection WHERE num > 5

除了SQL撬即,網(wǎng)頁(yè)編程中用到的HTMLCSS 也都屬于聲明式編程立磁。

通過(guò)觀(guān)察聲明式編程的代碼我們可以發(fā)現(xiàn)它有一個(gè)特點(diǎn)是它不需要?jiǎng)?chuàng)建變量用來(lái)存儲(chǔ)數(shù)據(jù)。
另一個(gè)特點(diǎn)是它不包含循環(huán)控制的代碼如 for剥槐, while唱歧。

函數(shù)式編程:

函數(shù)式編程和聲明式編程是有所關(guān)聯(lián)的,因?yàn)樗麄兯枷胧且恢碌模杭粗魂P(guān)注做什么而不是怎么做粒竖。但函數(shù)式編程不僅僅局限于聲明式編程颅崩。
函數(shù)式編程最重要的特點(diǎn)是“函數(shù)第一位”,即函數(shù)可以出現(xiàn)在任何地方蕊苗,比如你可以把函數(shù)作為參數(shù)傳遞給另一個(gè)函數(shù)沿后,不僅如此你還可以將函數(shù)作為返回值。大部分常見(jiàn)的編程語(yǔ)言一半都已經(jīng)提供了對(duì)這種編程方式的支持朽砰,比如 JavaScript得运,再有 C# 中的 LINQ 和 Java 中的 Lambda 和閉包的概念膝蜈。
Java 8 最大的一個(gè)對(duì)函數(shù)式編程支持的更新就是 Stream API,感興趣的可以了解下熔掺,官方文檔地址:https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html

相比于以前的命令式編程饱搏,在 Java 中我個(gè)人現(xiàn)在更傾向于函數(shù)式編程的方法,它可以讓代碼的邏輯更清晰更優(yōu)雅置逻,比如同樣的邏輯用 Java 8Stream方式寫(xiě)就是:

List<Number> results = collection.stream()
                                 .filter(n -> n > 5)
                                 .collect(Collectors.toList());

總結(jié)

以上就上不同的三種編碼方式的區(qū)別了推沸,大家可以好好體會(huì)一下,在以后做系統(tǒng)架構(gòu)的過(guò)程中適當(dāng)運(yùn)用合適的編程方式會(huì)對(duì)架構(gòu)的易用性和可讀性有一定幫助券坞。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鬓催,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子恨锚,更是在濱河造成了極大的恐慌宇驾,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件猴伶,死亡現(xiàn)場(chǎng)離奇詭異课舍,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)他挎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)筝尾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人办桨,你說(shuō)我怎么就攤上這事筹淫。” “怎么了呢撞?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵损姜,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我殊霞,道長(zhǎng)薛匪,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任脓鹃,我火速辦了婚禮逸尖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瘸右。我一直安慰自己娇跟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布太颤。 她就那樣靜靜地躺著苞俘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪龄章。 梳的紋絲不亂的頭發(fā)上吃谣,一...
    開(kāi)封第一講書(shū)人閱讀 49,071評(píng)論 1 285
  • 那天乞封,我揣著相機(jī)與錄音,去河邊找鬼岗憋。 笑死肃晚,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的仔戈。 我是一名探鬼主播关串,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼监徘!你這毒婦竟也來(lái)了晋修?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤凰盔,失蹤者是張志新(化名)和其女友劉穎墓卦,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體户敬,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡落剪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了山叮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡添履,死狀恐怖屁倔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情暮胧,我是刑警寧澤锐借,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站往衷,受9級(jí)特大地震影響钞翔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜席舍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一布轿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧来颤,春花似錦汰扭、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至滑黔,卻和暖如春笆包,著一層夾襖步出監(jiān)牢的瞬間环揽,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工庵佣, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留歉胶,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓秧了,卻偏偏與公主長(zhǎng)得像跨扮,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子验毡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容