軟體架構
軟體的架構是系統的一個草圖、闡述了各個元件之間的通訊、劃分層次、一旦系統開始詳細設計、架構藍圖就很難甚至無法更改、是由軟體架構師從無到有設計出來的。
比如說,多臺機器負載均衡,使用者訪問多個不同業務的前端專案,前端專案通過HTTP介面訪問伺服器前端專案,伺服器前端專案通過介面訪問伺服器後端專案,伺服器後端專案訪問並運算元據庫的資料。
架構有廣義和狹義的兩種解釋,廣義上是指web服務的整體架構,即業務層,快取層,Db層,非同步任務層等等的負載和互相通訊的機制。狹義上,也指細化到程式碼上的一些設計,使程式碼具有低耦合、高內聚、各司其職、易更換、修改、可以分散部署、編碼構建的性質。
軟體框架
軟體框架:是在一定領域內、別人已經對這個領域製作軟體所需的基礎架構功能、進行了總結、做出了有程式碼實體的軟體框架結構、如果要製作這一領域的軟體、可以在別人寫好的框架上、繼續設計、編寫自己的軟體、骨頭架上填肉、框架有一定的侷限性。
例:MVC(框架)
英文 Model View Controller、是針對Web開發、已經寫好有程式碼的框架、分別為M 模型(model)-V檢視(view)-C控制器(controller)三部分
目的:模型和檢視分離開、使得一個模型可被多個檢視使用、簡單說就是同樣的一個網站、用手機的檢視(介面)和電腦的檢視、可以共用一個模型。
設計模式
對軟體設計中普遍存在(反覆出現)的各種問題,所提出的解決方案、是一種解決方案的思想、不拘泥於程式碼、通常以型別或物件來描述其中的關係和相互作用、依賴與抽象、來達到解耦和、可寬展、易維護等、設計模式是用來解決問題的。特徵是,落腳點一定是程式碼本身。
三者的區別
軟體架構是指軟體架構師在軟體服務上,對複雜的軟體整體規劃的一種藍圖、一般是分層、畫出各個元件的關係。
軟體框架是指在特定的領域內、已經有人寫好的框架(有程式碼)、框架有侷限性、只限特定領域。
設計模式是指標對一些程式設計實際的問題所提出的抽象解決方案、用類與類之間的關係相互作用、達到目的。
推薦
此文來自我的電子書,歡迎關注:PHPer架構師
以及最近做的一個小程式,歡迎體驗,提提建議 ?
本作品採用《CC 協議》,轉載必須註明作者和本文連結