程序員別唬我系列之:中間件
關(guān)于中間件,你知道多少?
有朋友留言,希望說(shuō)說(shuō)啥是「中間件」。
「中間件」英文為middleware,是一個(gè)合成詞,middle都認(rèn)識(shí),不解釋了,ware表示“器皿”,“物件”的意思,中文翻譯過(guò)來(lái)就是“位于中間的物體”。
在計(jì)算機(jī)中,簡(jiǎn)單可以理解為“中間件是這樣的軟件,它位于兩個(gè)軟件中間,廣義的講,這兩個(gè)軟件一般為應(yīng)用軟件和系統(tǒng)軟件之間”。
淘寶,有代辦簽證這樣的業(yè)務(wù),但無(wú)論互聯(lián)網(wǎng)還是面簽,所有的簽證辦理機(jī)構(gòu)應(yīng)該是對(duì)你開放的,而且可以省去直接辦理和代辦的差價(jià),但是這樣的業(yè)務(wù)還是很紅火。
房產(chǎn)交易,國(guó)家房產(chǎn)交易部門完全對(duì)個(gè)人開放辦理,但是一些中介機(jī)構(gòu)仍然在大量充當(dāng)陌生人房產(chǎn)交易的樞紐,并賺取傭金。
電子商務(wù),支付寶、理財(cái)通充當(dāng)了人和商家之間的中轉(zhuǎn)和媒介,使交易更有保障和快捷。
這三個(gè)事物中,可以抽象出什么共性呢?我試著描述一下幾個(gè)特點(diǎn):“專業(yè)、安全、快捷、成本低”,它們是我們生活中的「中間件」。
我們把簽證中心,房產(chǎn)交易所,商家理解為操作系統(tǒng)的話,我們每個(gè)人相當(dāng)于應(yīng)用層軟件。其中淘寶平臺(tái),房產(chǎn)交易中介,還有支付寶、理財(cái)通就是“中間的軟件”。
讓我們回來(lái)挨踢(IT)。
如果你比較早的接觸過(guò)IT工作的話,你一定應(yīng)該聽說(shuō)過(guò).NET和Java之爭(zhēng),他們就是中間件,他們位于操作系統(tǒng)之上,用來(lái)更方便的構(gòu)建應(yīng)用程序,他們對(duì)操作系統(tǒng)更好的包裝,讓開發(fā)者并不需要深入的了解操作系統(tǒng),就可以開發(fā)應(yīng)用程序,而且開發(fā)效率高,穩(wěn)定,學(xué)習(xí)成本低。
這就是中間件的好處和作用,剛才講的都是廣義上的中間件,一般都是TO B或者面向開發(fā)者的,不面向普通用戶。
那整天程序員嘴里BB的中間件是什么呢?
大概是秉承了「中間件」廣義的概念,比如一個(gè)項(xiàng)目中有大量對(duì)文件讀寫的操作,不僅正常讀寫,還有邊讀邊寫的需求,還有讀一個(gè)字節(jié),然后寫兩個(gè)字節(jié)的需求,還有從某一位置替換特定的字符個(gè)數(shù)等等需求,并且都是用在不同的模塊中,大家各寫各的,用的亂七八糟。
這個(gè)時(shí)候果果站出來(lái)了,裝逼的喊了一聲,對(duì)文件的所有操作都有我來(lái)寫吧,做“文件讀寫”操作,我是專業(yè)的。果果將所有方法抽象出來(lái),大同小異的方法進(jìn)行抽象收斂,形成了一套適合于本項(xiàng)目的”關(guān)于文件讀寫的中間件”,后面所有項(xiàng)目成員,都使用我的「中間件」就行了,大大提高了工作效率,領(lǐng)導(dǎo)發(fā)現(xiàn)果果同學(xué)節(jié)省了大量的開發(fā)時(shí)間,心態(tài)又這么積極,承諾一定要給果果一個(gè)優(yōu)秀員工的稱號(hào)呢~
這種狹義的概念,你會(huì)發(fā)現(xiàn)和我們以前講的SDK,接口很像,也就是狹義的中間件,可能就是一個(gè)小功能的封裝,或者某些特性的抽象表述。程序員經(jīng)常說(shuō):“不要重復(fù)造輪子”,這些輪子在狹義上都可以稱為「中間件」,一些比較好的開源項(xiàng)目也相當(dāng)于中間件,另外以前講的組件,狹義上也可以理解為中間件。
#專欄作家#
給產(chǎn)品經(jīng)理講技術(shù),微信公眾號(hào)(pm_teacher),人人都是產(chǎn)品經(jīng)理專欄作家。資深程序猿,專注客戶端開發(fā)若干年,對(duì)前端、后臺(tái)技術(shù)略懂,熱衷于對(duì)新的科技領(lǐng)域的探索。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自PEXELS,基于CC0協(xié)議
具體有哪些?
實(shí)際工作中很少提這些虛的概念了。一開始曾經(jīng)做過(guò)技術(shù)的我一看這標(biāo)題都被唬住了,進(jìn)來(lái)才知道講的就是寫的一些基礎(chǔ)class(面向?qū)ο螅?/p>
木有技術(shù)背景的小pm,表示還是挺受用的??
+10086 也許層主不是目標(biāo)讀者吧 小白覺(jué)得受益匪淺 謝謝果巨巨 也謝謝善良的小奶汪