初识 框架与架构
核心內容
- 組件是達到可復用要求的模塊
- 架構是設計圖紙,框架是工程師
系統與子系統
“系統”的維基百科定義:
系統泛指由一群有關聯的個體組成,根據某種規則運作,能完成個別元件不能單獨完成的工作的群體。它的意思是“總體”“整體”或“聯盟”。
”子系統“的維基百科定義:
子系統也是由一群有關聯的個體所組成的系統,多半會是更大系統中的一部分。
子系統的定義和系統定義是一樣的,只是觀察的角度有差異,一個系統可能是另外一個更大系統的子系統。
例如
- 微信本身是一個系統,包含聊天、登錄、支付、朋友圈等子系統
- 朋友圈這個系統又包括動態、評論、點贊等子系統
無論是系統還是子系統相對于自身系統而言,整個系統都是由個體也就是模塊或組件構成的。
模塊與組件
- 都是基于功能劃分的單位
- 模塊是從業務維度上職責的劃分
- 組件是技術維度上的復用
從設計上來看,組件強調復用,模塊強調職責(內聚、分離),或者說組件是達到可復用要求的模塊。
模塊和組件都是系統的組成部分,只是從不同的角度拆分系統。
框架與架構
- 框架關注的是“規范”,是面向編程或配置的半成品
- 架構關注的是“結構”,是軟件系統的金字塔結構
所謂結構,是指任何一件事情都可以看做一個系統。
而任何一個系統,都有多個元素(個體)組成,這些系統組成的元素之間的關系形成結構
而規范就是要求按照這個結構進行操作的一個標準
架構是設計圖紙,目的是“做什么”;框架是工程師,目的是“做出來”。
選擇不同的框架就是選擇不同的工程師。
哪怕是基于同一張設計圖紙不同的工程師(不同的框架)做出來的效果各不一樣(性能的差異)。
比如說Spring MVC框架這個工程師,他拿著MVC架構這張設計圖開發出來web應用了。
- 這個web應用是MVC架構設計的,是基于Spring MVC框架開發的
(這個web工程是按照MVC設計圖紙開發的,是Spring MVC工程師做的) - Spring MVC框架基于MVC架構設計開發了這個web應用
(Spring MVC工程師按照MVC這設計圖紙做出了這個web工程)
當我們想造一房子時,我們可以自己學習成為工程師(造輪子)來建造,但也許更好的選擇是聘請專業的工程師(現成框架),我們提供材料(編寫模塊或組件)讓其快速實現目標。
知識復盤
當我們在談架構的時候,其實是在談什么?
設計思想
當我們在談框架的時候,其實是在談什么?
設計思想的具體化(用Spring、JSF、GWT哪個實現)
如何正確介紹一個系統的架構與框架?
這個XXX系統是基于XXX 架構設計,基于XXX 框架開發的
小結
- 系統是基于架構設計,基于框架開發,由模塊或組件構造。
- 凡是可以體現出設計思想的都可以看做是架構,凡是可以根據設計開發出產品的都可以看做框架。
總結
- 上一篇: MySQL集群搭建--多主模式
- 下一篇: 让工作与(vue)音乐相伴