系統(tǒng)和子系統(tǒng)、架構(gòu)和框架、模塊和組件

平時(shí)學(xué)習(xí)一些編程相關(guān)的技術(shù),除了買書看之外就是通過搜索引擎找相關(guān)資料,例如從官網(wǎng)上獲取最新技術(shù)文檔(雖然看不懂英文,但是可以借助翻譯工具達(dá)到這個(gè)目的)或者是在CSDN、博客園、思否、infoQ等網(wǎng)站獲取一些編程語言/技術(shù)框架等知識(shí)。當(dāng)然了,記得初學(xué)編程的時(shí)候,大多就是去w3cschool和菜鳥教程學(xué)習(xí),一來覺得實(shí)用性相對(duì)比較強(qiáng),二來比較系統(tǒng)。

這周一在極客時(shí)間買了一個(gè)知識(shí)付費(fèi)專欄叫做《從0開始學(xué)架構(gòu)》,初看感覺還不錯(cuò),于是接連下來看了8章,覺得還是有一定的收獲。

讀了《從0開始學(xué)架構(gòu)》,對(duì)第一篇文章架構(gòu)到底是什么頗有啟發(fā),下面我給大家說說系統(tǒng)和子系統(tǒng)、架構(gòu)和框架、模塊和組件。

一、系統(tǒng)和子系統(tǒng)

大家對(duì)于系統(tǒng)和子系統(tǒng)這個(gè)概念想必都有所了解。當(dāng)然了,也有不少十分清楚的。

1.以人體為例,簡(jiǎn)單闡述系統(tǒng)的含義

人體由運(yùn)動(dòng)系統(tǒng)、神經(jīng)系統(tǒng)、內(nèi)分泌系統(tǒng)、循環(huán)系統(tǒng)、呼吸系統(tǒng)、消化系統(tǒng)、泌尿系統(tǒng)、生殖系統(tǒng)八大系統(tǒng)構(gòu)成。

你可以理解為人體是一個(gè)系統(tǒng),而運(yùn)動(dòng)系統(tǒng)、神經(jīng)系統(tǒng)、內(nèi)分泌系統(tǒng)循環(huán)系統(tǒng)、呼吸系統(tǒng)、消化系統(tǒng)、泌尿系統(tǒng)、生殖系統(tǒng)可以理解為它的子系統(tǒng)。

2.再以我曾經(jīng)在校開發(fā)的博客為例,闡述子系統(tǒng)的含義

我的博客就是一個(gè)系統(tǒng),在這個(gè)系統(tǒng)里面,它有用戶系統(tǒng)、文章系統(tǒng)、留言系統(tǒng)、聊天系統(tǒng)等。而用戶系統(tǒng)、文章系統(tǒng)、留言系統(tǒng)、聊天系統(tǒng)則屬于子系統(tǒng)。

二、架構(gòu)和框架

1.架構(gòu)是什么(以軟件為例)

軟件架構(gòu)(software architecture)是一系列相關(guān)的抽象模式,用于指導(dǎo)大型軟件系統(tǒng)各個(gè)方面的設(shè)計(jì)。 軟件架構(gòu)是一個(gè)系統(tǒng)的草圖。軟件架構(gòu)描述的對(duì)象是直接構(gòu)成系統(tǒng)的抽象組件。各個(gè)組件之間的連接則明確和相對(duì)細(xì)致地描述組件之間的通訊。在實(shí)現(xiàn)階段,這些抽象組件被細(xì)化為實(shí)際的組件,比如具體某個(gè)或者對(duì)象。在面向?qū)ο?/a>領(lǐng)域中,組件之間的連接通常用接口(計(jì)算機(jī)科學(xué))來實(shí)現(xiàn)。 軟件體系結(jié)構(gòu)是構(gòu)建計(jì)算機(jī)軟件實(shí)踐的基礎(chǔ)。與建筑師設(shè)定建筑項(xiàng)目的設(shè)計(jì)原則和目標(biāo),作為繪圖員畫圖的基礎(chǔ)一樣,一個(gè)軟件架構(gòu)師或者系統(tǒng)架構(gòu)師陳述軟件構(gòu)架以作為滿足不同客戶需求的實(shí)際系統(tǒng)設(shè)計(jì)方案的基礎(chǔ)。

也許用這么官方的語言來形容,你可能不會(huì)明白。

如果我換一種方式表達(dá),你或許就懂了。

比如:

(1)從開發(fā)規(guī)范的看:

Java開發(fā)常說的三層架構(gòu)(界面層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層)或者是MVC模式開發(fā)。

(2)從物理部署的角度看:

可以用一張圖來表示,如下所示:

(3)再以我寫的書的思維導(dǎo)圖為例,如圖:

這也是一個(gè)架構(gòu),只不過是一本書的架構(gòu)。

2.框架是什么

從建筑學(xué)的角度看,框架(framework)是一個(gè)框子——指其約束性,也是一個(gè)架子——指其支撐性。是一個(gè)基本概念上的結(jié)構(gòu),用于去解決或者處理復(fù)雜的問題。

以Spring框架為例,為什么需要Spring框架,因?yàn)樵跊]有Spring之前,我們對(duì)于對(duì)象的管理方式,是通過手動(dòng)New進(jìn)行管理,而不是現(xiàn)在xml中bean的方式或者是Spring注解的方式來管理。

前人因?yàn)槭謩?dòng)管理對(duì)象,吃盡了苦頭,所以開創(chuàng)了這一個(gè)偉大的框架,解放了Java程序員之前手動(dòng)管理對(duì)象的痛苦。

任何一門技術(shù)誕生,都有其一定的必然性。比如現(xiàn)在有不少朋友公司沒有用傳統(tǒng)的SSH框架(Spring+Struts/Struts2+Hibernate),轉(zhuǎn)用SSM(Spring+SpringMVC+MyBatis)或者是覺得SSM(Spring+SpringMVC+MyBatis)有其局限性不符合業(yè)務(wù)的需要而轉(zhuǎn)用SpringBoot或SpringCloud。

三、模塊和組件

1.什么是模塊

百度百科對(duì)這個(gè)的定義是:

(1)在程序設(shè)計(jì)中,為完成某一功能所需的一段程序或子程序;

(2)或指能由編譯程序、裝配程序等處理的獨(dú)立程序單位;

(3)或指大型軟件系統(tǒng)的一部分。

模塊,又稱構(gòu)件,是能夠單獨(dú)命名并獨(dú)立地完成一定功能的程序語句的集合(即程序代碼和數(shù)據(jù)結(jié)構(gòu)的集合體)。它具有兩個(gè)基本的特征:外部特征和內(nèi)部特征。外部特征是指模塊跟外部環(huán)境聯(lián)系的接口(即其他模塊或程序調(diào)用該模塊的方式,包括有輸入輸出參數(shù)、引用的全局變量)和模塊的功能;內(nèi)部特征是指模塊的內(nèi)部環(huán)境具有的特點(diǎn)(即該模塊的局部數(shù)據(jù)和程序代碼)。

最終,你可以將其認(rèn)為是一個(gè)系統(tǒng)中的功能模塊,比如登錄功能模塊、文章管理模塊、留言管理模塊或者是系統(tǒng)監(jiān)控模塊等。

2.什么是組件

比如我在前端開發(fā)中常用的Ztree或者是MyBatis的分頁插件等,你可以理解為組件。通常組件是為了實(shí)現(xiàn)某個(gè)目的而引用的,比如Ztree是為了更好的展現(xiàn)組織關(guān)系、權(quán)限管理等。

小結(jié):

以上是我對(duì)于系統(tǒng)和子系統(tǒng)、架構(gòu)和框架、模塊和組件的理解(當(dāng)然了,里面有個(gè)人在實(shí)際開發(fā)中的看法,同時(shí)也包含引用官方的說辭等)。

最后,該專欄作者提出了一個(gè)思考題,題目如下:

問:你原來理解的架構(gòu)是如何定義的?

答:我認(rèn)為我原來的理解和該專欄作者大體上是一致的,不過也許有差異。我認(rèn)為架構(gòu)貫穿整個(gè)軟件開發(fā)生命周期(以瀑布模式為例,項(xiàng)目的可行性、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼(代碼規(guī)范制定和核心代碼的編寫)、測(cè)試、部署等)。不僅僅包含這個(gè)還包含采用什么樣的技術(shù)及其業(yè)務(wù)是全部在一個(gè)項(xiàng)目上(單體應(yīng)用)或者分開(多體應(yīng)用)等等。

加2643804531樂樂老師為好友,她會(huì)發(fā)以往資料給您,及時(shí)發(fā)課題給您哦

611481448,這是我們的群號(hào),如果您有什么問題可以在群內(nèi)咨詢

免費(fèi)訂閱成功 可以領(lǐng)取精品深度學(xué)習(xí)課程資料一份!

這些僅僅只是我個(gè)人的看法,歡迎有更好想法的朋友留言。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,063評(píng)論 25 709
  • 男歡女愛是人間永恒的話題,不管是戀愛還是婚姻,男人幾乎是處于主動(dòng)主導(dǎo)的地位。 有人說:真正的愛情不是一時(shí)的好感,一...
    奔跑的迷路人閱讀 324評(píng)論 0 0
  • 01 許多年前,我還在咸陽的時(shí)候,一直住在一個(gè)叫氓流村的地方。你定和我一樣,納悶為何這般起名。村子里除了有一戶養(yǎng)了...
    麥小丫閱讀 489評(píng)論 0 1
  • 當(dāng)清風(fēng)完美的一天, 風(fēng)帆就是要張開。 美麗在全世界綻放。 今天就是這樣一天。 我的眼睛就像太陽,做出許諾; 許諾著...
    八戒和美好閱讀 681評(píng)論 0 0

友情鏈接更多精彩內(nèi)容