免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

什么是系統(tǒng)架構(gòu)?

 黃昌易 2019-06-06

什么是系統(tǒng)架構(gòu)?

什么才是“軟件架構(gòu)”呢?軟件架構(gòu)師的工作內(nèi)容究竟是什么?這項(xiàng)工作又是什么時候進(jìn)行的呢?

軟件架構(gòu)師自身需要是程序員,并且必須一直堅持做一線程序員,絕對不要聽從那些說應(yīng)該讓軟件架構(gòu)師從代碼中解放出來以專心解決高階問題的偽建議。

軟件架構(gòu)師其實(shí)應(yīng)該是能力最強(qiáng)的一群程序員,他們通常會在自身承接編程任務(wù)的同時,逐漸引導(dǎo)整個團(tuán)隊向一個能夠最大化生產(chǎn)力的系統(tǒng)設(shè)計方向前進(jìn)。也許軟件架構(gòu)師生產(chǎn)的代碼量不是最多的,但是他們呢必須不停的承接編程任務(wù)。

如果不親自承受因系統(tǒng)設(shè)計而帶來的麻煩,就體會不到設(shè)計不佳所帶來的痛苦,接著就會逐漸迷失正確的設(shè)計方向。

軟件系統(tǒng)的架構(gòu)質(zhì)量是由它的構(gòu)建者所決定的,軟件架構(gòu)這項(xiàng)工作的實(shí)質(zhì)就是規(guī)劃如何將系統(tǒng)拆分成組件,并安排好組件之間的排列關(guān)系,以及組件之間互相通信的方式。

軟件架構(gòu)的終極目標(biāo)就是最大化程序員的生產(chǎn)力,同時最小化系統(tǒng)的總運(yùn)營成本。

所有的軟件系統(tǒng)都可以降解為策略與細(xì)節(jié)這兩種元素。策略體現(xiàn)的是軟件中所有的業(yè)務(wù)規(guī)劃和操作過程,因此它是系統(tǒng)真正的價值所在。

優(yōu)秀的架構(gòu)師會小心地將軟件的高層策略與其底層實(shí)現(xiàn)隔離開,讓高層策略與實(shí)現(xiàn)細(xì)節(jié)脫鉤,使其策略部分完全不需要關(guān)心底層細(xì)節(jié),當(dāng)然也不會對這些細(xì)節(jié)有任何形式的依賴。

一、獨(dú)立性

一個設(shè)計良好的架構(gòu)應(yīng)該能允許一個系統(tǒng)從單體結(jié)構(gòu)開始,以單一文件的形式部署,然后逐漸成長為一組相互獨(dú)立的可部署但愿,甚至是獨(dú)立的服務(wù)或者微服務(wù)。最后還能夠隨著情況的變化,允許系統(tǒng)逐漸回退到單體結(jié)構(gòu)。

二、劃分邊界

軟件架構(gòu)設(shè)計本身就是一門劃分邊界的藝術(shù)。邊界的作用是將軟件分割成各種元素,以便約束邊界兩側(cè)之間的依賴關(guān)系。其中有一些邊界是在項(xiàng)目初期——甚至在編寫代碼之前——就已經(jīng)劃分好,而其他的邊界則是后來才劃分的。在項(xiàng)目初期劃分這些邊界的目的是方便我們盡量將一些決策延后進(jìn)行,并且確保未來這些決策不會對系統(tǒng)的核心業(yè)務(wù)邏輯產(chǎn)生干擾。

正如我們之前所說,架構(gòu)師們應(yīng)該追求的目標(biāo)是最大限度地降低構(gòu)建和維護(hù)一個系統(tǒng)所需的人力資源。那么我們就需要了解一個系統(tǒng)最消耗人力資源的是什么?答案是系統(tǒng)中存在的耦合——尤其是那些過早做出的、不成熟的決策所導(dǎo)致的耦合。

那么,怎樣的決策會被認(rèn)為是過早且不成熟的呢?答案是那些決策與系統(tǒng)的業(yè)務(wù)需求無關(guān)。

三、邊界剖析

所謂劃分邊界,就是指在這些模塊之間建立這種針對變更的防火墻。

系統(tǒng)架構(gòu)中最強(qiáng)的邊界形式就是服務(wù)。

四、策略與層次

本質(zhì)上,所有的軟件系統(tǒng)都是一組策略語言的集合。軟件架構(gòu)設(shè)計的工作重點(diǎn)之一就是,將這些策略彼此隔離,然后將它們按照變更的方向進(jìn)行重新分組。其中變更原因、時間和層次相同的策略應(yīng)該被分到同一個組件中。分之,變更原因、時間和層次不同的策略則應(yīng)該分屬于不同的組件。

軟件設(shè)計的工作常常需要將組件重排組合成為一個有向無環(huán)圖。一般來說,低層組件被設(shè)計為依賴于高層組件。

五、業(yè)務(wù)邏輯

業(yè)務(wù)邏輯是一個軟件系統(tǒng)存在的意義,它們屬于核心功能,是系統(tǒng)用來賺錢火省錢的那部門代碼,是整個系統(tǒng)的皇冠明珠。

這些業(yè)務(wù)邏輯應(yīng)該保持純凈,不要摻雜用戶界面或者所使用的數(shù)據(jù)庫相關(guān)的東西。在理想情況下,這部門代表業(yè)務(wù)邏輯的代碼應(yīng)該是整個系統(tǒng)的核心,其他底層概念的實(shí)現(xiàn)應(yīng)該以插件的形式借入系統(tǒng)中。業(yè)務(wù)邏輯應(yīng)該是系統(tǒng)中最獨(dú)立、復(fù)用性最高的代碼。

六、尖叫的軟件架構(gòu)

Jacobson:軟件的系統(tǒng)架構(gòu)應(yīng)該為該系統(tǒng)的用例提供支持。這就像住宅和圖書館的建筑計劃滿篇都在非常明顯地凸顯這些建筑的用例一樣,軟件系統(tǒng)的架構(gòu)設(shè)計圖也應(yīng)該非常明確地凸顯該應(yīng)用程序會有那些用例。

架構(gòu)設(shè)計的核心目標(biāo)

一個良好的架構(gòu)設(shè)計應(yīng)該圍繞著用例來展開的,這樣的架構(gòu)設(shè)計可以在脫離框架、工具以及使用環(huán)境的情況下完整地描述用例。這就好像一個住宅建筑設(shè)計的首要目標(biāo)應(yīng)該是滿足住宅的使用需求,而不是確保一定要用磚來構(gòu)建整個房子。

而且,良好的架構(gòu)設(shè)計應(yīng)該盡可能地允許用戶推遲和延后決定采用什么框架、數(shù)據(jù)庫、Web 服務(wù)以及其他與環(huán)境相關(guān)的工具。

同時,良好的架構(gòu)設(shè)計還應(yīng)該讓我們很容易改變這些決定。

框架是工具而不是生活信條

一個系統(tǒng)的架構(gòu)應(yīng)該著重于展示系統(tǒng)本身的設(shè)計,而并非該系統(tǒng)所使用的框架。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多