日常總會看到說某某架構、某某框架,可是對於其意瞭解總有些迷糊,以致於有時候會出笑話,看了幾位老哥的博客,有了一些理解,在此記錄,加深一下。php
參考連接:python
http://www.javashuo.com/article/p-vnfpjuwz-gk.html程序員
https://blog.csdn.net/CillyB/article/details/79464339spring
架構:django
軟件架構,也成稱爲軟件體系結構,簡單地說就是一種設計方案,將用戶的不一樣需求抽象成組件,且可以描述組件之間的通訊和調用。軟件架構會分析工程中的問題,針對問題設計解決方案,針對解決方案分析應具備的功能,針對功能設計軟件系統的層次和模塊及層次模塊之間的邏輯交互關係,肯定各個功能如何由這些邏輯實現。開發人員能夠根據軟件架構分析出來的層次和架構進行軟件編寫。設計模式
另外百度百科以下:微信
是一系列相關的抽象模式,用於指導大型軟件系統各個方面的設計。 軟件架構是一個系統的草圖。軟件架構描述的對象是直接構成系統的抽象組件。各個組件之間的鏈接則明確和相對細緻地描述組件之間的通信。在實現階段,這些抽象組件被細化爲實際的組件,好比具體某個類或者對象。架構
理解:mvc
架構更趨於方案,是設計,並非具體的技術。software architecture框架
另外關於MVC究竟是什麼的問題:
https://blog.csdn.net/whalefrat/article/details/78442175
https://www.zhihu.com/question/31079945
https://blog.csdn.net/CillyB/article/details/79464339
關於mvc有人說是設計模式,有人說是框架模式,有人說是架構模式。
我的以爲均可,只不過若是硬說是設計模塊感受有些牽強,框架模式和架構模式均可,關鍵字在模式二字。
既然是模式,那麼是思想、是設計、是規範而不在於代碼層面。
框架:
軟件框架,是軟件開發過程當中提取軟件的共性部分造成的體系結構。框架不是現成可用的應用系統,而是一個半成品,是一個提供了諸多服務,供開發人員進行二次開發,實現具體功能的程序實體。
理解:
更趨於技術,是半成品,須要進行二次開放。好比spring 框架- framework
關於框架與設計模式:
下面這一段以爲挺直觀,能夠看看。
三、模式:
設計模式強調的是一個設計問題的解決方法,是一套被反覆使用、多數人知曉的、通過分類編目的、代碼設計經驗的總結。
框架與設計模式的關係:設計模式研究的是對單一問題的設計思路和解決方法,一個模式可應用於不一樣的框架和被不一樣的程序語言所實現;而框架則是一個應用的體系結構,是一種或多種設計模式和代碼的混合體。設計模式的思想能夠在框架設計中進行應用。
架構與設計模式的關係:設計模式研究的是對單一問題的設計思路和解決方法,範疇比較小;而架構是高層次的針對體系結構的一種設計思路,範疇比較大。一個架構中可能會出現多個設計模式的思想。
四、模塊:
根據不一樣的標準,一般會說程序模塊或功能模塊,程序模塊指的是一段可以實現某個目標的成員代碼段,功能模塊則用來講明一個功能所包含的系統行爲。定義模塊的原則是:高內聚和低耦合。
五、組件:
組件是封裝了一個或多個程序模塊的實體。組件強調的是封裝,利用接口進行交互。插件是組件的一個子類,就是將組件中具備某些特色的組件歸爲插件。
理解:組件是封裝,是可重用的代碼。
六、插件:
插件屬於組件,插件是組件的一個子類,就是將組件中具備某些特色的組件歸爲插件。插件是一種電腦程序,經過和應用程序的互動,來爲應用程序增長一些特定的功能,僅靠插件是沒法正常運行的,須要依賴於應用程序才能發揮自身功能。插件和應用程序之間經過接口進行交互。
理解:即插即用,動態。關於插件有的說是可單獨運行的,有的說必須依賴其餘應用。我的趨於後者,若是是可單獨運行的,我感受理解爲子系統更好,打個比方:好比微信的朋友圈若是能單獨運行,感受理解爲子系統或者子應用更好理解。