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






