程序員別唬我系列之:中間件

4 評論 26864 瀏覽 40 收藏 5 分鐘

關于中間件,你知道多少?

有朋友留言,希望說說啥是「中間件」。

「中間件」英文為middleware,是一個合成詞,middle都認識,不解釋了,ware表示“器皿”,“物件”的意思,中文翻譯過來就是“位于中間的物體”。

在計算機中,簡單可以理解為“中間件是這樣的軟件,它位于兩個軟件中間,廣義的講,這兩個軟件一般為應用軟件和系統軟件之間”。

淘寶,有代辦簽證這樣的業務,但無論互聯網還是面簽,所有的簽證辦理機構應該是對你開放的,而且可以省去直接辦理和代辦的差價,但是這樣的業務還是很紅火。

房產交易,國家房產交易部門完全對個人開放辦理,但是一些中介機構仍然在大量充當陌生人房產交易的樞紐,并賺取傭金。

電子商務,支付寶、理財通充當了人和商家之間的中轉和媒介,使交易更有保障和快捷。

這三個事物中,可以抽象出什么共性呢?我試著描述一下幾個特點:“專業、安全、快捷、成本低”,它們是我們生活中的「中間件」。

我們把簽證中心,房產交易所,商家理解為操作系統的話,我們每個人相當于應用層軟件。其中淘寶平臺,房產交易中介,還有支付寶、理財通就是“中間的軟件”。

讓我們回來挨踢(IT)。

如果你比較早的接觸過IT工作的話,你一定應該聽說過.NET和Java之爭,他們就是中間件,他們位于操作系統之上,用來更方便的構建應用程序,他們對操作系統更好的包裝,讓開發者并不需要深入的了解操作系統,就可以開發應用程序,而且開發效率高,穩定,學習成本低。

這就是中間件的好處和作用,剛才講的都是廣義上的中間件,一般都是TO B或者面向開發者的,不面向普通用戶。

那整天程序員嘴里BB的中間件是什么呢?

大概是秉承了「中間件」廣義的概念,比如一個項目中有大量對文件讀寫的操作,不僅正常讀寫,還有邊讀邊寫的需求,還有讀一個字節,然后寫兩個字節的需求,還有從某一位置替換特定的字符個數等等需求,并且都是用在不同的模塊中,大家各寫各的,用的亂七八糟。

這個時候果果站出來了,裝逼的喊了一聲,對文件的所有操作都有我來寫吧,做“文件讀寫”操作,我是專業的。果果將所有方法抽象出來,大同小異的方法進行抽象收斂,形成了一套適合于本項目的”關于文件讀寫的中間件”,后面所有項目成員,都使用我的「中間件」就行了,大大提高了工作效率,領導發現果果同學節省了大量的開發時間,心態又這么積極,承諾一定要給果果一個優秀員工的稱號呢~

這種狹義的概念,你會發現和我們以前講的SDK,接口很像,也就是狹義的中間件,可能就是一個小功能的封裝,或者某些特性的抽象表述。程序員經常說:“不要重復造輪子”,這些輪子在狹義上都可以稱為「中間件」,一些比較好的開源項目也相當于中間件,另外以前講的組件,狹義上也可以理解為中間件。

#專欄作家#

給產品經理講技術,微信公眾號(pm_teacher),人人都是產品經理專欄作家。資深程序猿,專注客戶端開發若干年,對前端、后臺技術略懂,熱衷于對新的科技領域的探索。

本文原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自PEXELS,基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 具體有哪些?

    回復
  2. 實際工作中很少提這些虛的概念了。一開始曾經做過技術的我一看這標題都被唬住了,進來才知道講的就是寫的一些基礎class(面向對象)

    來自福建 回復
    1. 木有技術背景的小pm,表示還是挺受用的??

      回復
    2. +10086 也許層主不是目標讀者吧 小白覺得受益匪淺 謝謝果巨巨 也謝謝善良的小奶汪

      來自四川 回復