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