軟件架構(gòu)、框架、模式、模塊、組件、插件、中間件一文打盡(軟件框架和架構(gòu))
軟件架構(gòu)、框架、模式、模塊、組件、插件、中間件一文打盡(軟件框架和架構(gòu))
一、架構(gòu)
軟件架構(gòu)(software architecture)是一系列相關(guān)的抽象模式,用于指導(dǎo)大型軟件系統(tǒng)各個方面的設(shè)計。軟件架構(gòu)是一個系統(tǒng)的草圖。軟件體系結(jié)構(gòu)是構(gòu)建計算機軟件實踐的基礎(chǔ)。也稱為軟件體系結(jié)構(gòu),簡單地說就是一種設(shè)計方案,將用戶的不同需求抽象成組件,且能夠描述組件之間的通信和調(diào)用。軟件架構(gòu)會分析工程中的問題,針對問題設(shè)計解決方案,針對解決方案分析應(yīng)具有的功能,針對功能設(shè)計軟件系統(tǒng)的層次和模塊及層次模塊之間的邏輯交互關(guān)系,確定各個功能如何由這些邏輯實現(xiàn)。開發(fā)人員可以根據(jù)軟件架構(gòu)分析出來的層次和架構(gòu)進行軟件編寫。
架構(gòu)可以類比于硬件里面的拓?fù)鋱D,而架構(gòu)根據(jù)展示的內(nèi)容不同又可以分為應(yīng)用架構(gòu)、業(yè)務(wù)架構(gòu)、技術(shù)架構(gòu)、數(shù)據(jù)架構(gòu)。
- 應(yīng)用架構(gòu)
- 技術(shù)架構(gòu)
- 業(yè)務(wù)架構(gòu)
- 數(shù)據(jù)架構(gòu)
二、框架
軟件框架(software framework),通常指的是為了實現(xiàn)某個業(yè)界標(biāo)準(zhǔn)或完成特定基本任務(wù)的軟件組件規(guī)范,也指為了實現(xiàn)某個軟件組件規(guī)范時,提供規(guī)范所要求之基礎(chǔ)功能的軟件產(chǎn)品。
軟件框架,是軟件開發(fā)過程中提取軟件的共性部分形成的體系結(jié)構(gòu)??蚣懿皇乾F(xiàn)成可用的應(yīng)用系統(tǒng),而是一個半成品,是一個提供了諸多服務(wù),供開發(fā)人員進行二次開發(fā),實現(xiàn)具體功能的程序?qū)嶓w。
框架與架構(gòu)的關(guān)系:框架不是架構(gòu),框架比架構(gòu)更具體,更偏重于技術(shù),而架構(gòu)更偏重于設(shè)計;架構(gòu)可以通過多種框架來實現(xiàn)。
舉個例子 EXPRESS 框架:Express是一個基于Node平臺的web應(yīng)用開發(fā)框架,它提供了一系列的強大特性,幫助你創(chuàng)建各種Web應(yīng)用。
可以使用npm install express命令進行下載。
提供了方便簡潔的路由定義方式
對獲取HTTP請求參數(shù)進行了簡化處理
對模板引擎支持程度高,方便渲染動態(tài)HTML頁面
提供了中間件機制有效控制HTTP請求
擁有大量第三方中間件對功能進行擴展
三、模式
設(shè)計模式強調(diào)的是一個設(shè)計問題的解決方法,是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗的總結(jié)。
框架與設(shè)計模式的關(guān)系:設(shè)計模式研究的是對單一問題的設(shè)計思路和解決方法,一個模式可應(yīng)用于不同的框架和被不同的程序語言所實現(xiàn);而框架則是一個應(yīng)用的體系結(jié)構(gòu),是一種或多種設(shè)計模式和代碼的混合體。設(shè)計模式的思想可以在框架設(shè)計中進行應(yīng)用。
架構(gòu)與設(shè)計模式的關(guān)系:設(shè)計模式研究的是對單一問題的設(shè)計思路和解決方法,范疇比較小;而架構(gòu)是高層次的針對體系結(jié)構(gòu)的一種設(shè)計思路,范疇比較大。一個架構(gòu)中可能會出現(xiàn)多個設(shè)計模式的思想。
四、模塊
根據(jù)不同的標(biāo)準(zhǔn),通常會說程序模塊或功能模塊,程序模塊指的是一段能夠?qū)崿F(xiàn)某個目標(biāo)的成員代碼段,功能模塊則用來說明一個功能所包含的系統(tǒng)行為。定義模塊的原則是:高內(nèi)聚和低耦合。
五、組件
組件是封裝了一個或多個程序模塊的實體。組件強調(diào)的是封裝,利用接口進行交互。組件也稱為構(gòu)建。插件是組件的一個子類,就是將組件中具有某些特點的組件歸為插件。
六、插件
插件屬于組件,插件是組件的一個子類,就是將組件中具有某些特點的組件歸為插件。插件是一種電腦程序,通過和應(yīng)用程序的互動,來為應(yīng)用程序增加一些特定的功能,僅靠插件是無法正常運行的,需要依賴于應(yīng)用程序才能發(fā)揮自身功能。插件和應(yīng)用程序之間通過接口進行交互。
七、控件
可視化的組件。
八、中間件
中間件是指網(wǎng)絡(luò)環(huán)境下處于操作系統(tǒng)、數(shù)據(jù)庫等系統(tǒng)軟件和應(yīng)用軟件之間的一種起連接作用的分布式軟件,主要解決異構(gòu)網(wǎng)絡(luò)環(huán)境下分布式應(yīng)用軟件的互連與互操作問題,提供標(biāo)準(zhǔn)接口、協(xié)議,屏蔽實現(xiàn)細(xì)節(jié),提高應(yīng)用系統(tǒng)易移植性。