日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于架构的思考

發(fā)布時(shí)間:2025/3/13 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于架构的思考 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
作者: Anders小明??


一、????????????
架構(gòu)是什么?

通常關(guān)于架構(gòu)的第一個(gè)問題是架構(gòu)是什么,很自然也很正常,本文也不能免俗。然而關(guān)于這個(gè)問題卻沒有一致性答案,同時(shí)也要注意到不同應(yīng)用的架構(gòu)實(shí)質(zhì)上存在不同差異性。

(一)?架構(gòu)的定義

架構(gòu),雖然人們一直在討論它,甚至于每天都在同其工作,然而這個(gè)詞并沒有一個(gè)被業(yè)界廣泛認(rèn)可的定義。

大致而言,架構(gòu)的定義分為三類:

類別?

定義?

結(jié)構(gòu)論

牛津高階詞典: The design an structure of a computer system

韋氏大辭典: The way in which the parts of a computer are organized

IEEE: The fundamental organisation of a system embodied in its components, their relationships to each other, and to the environment,and the principle guiding its design and evolution

關(guān)鍵論

架構(gòu)是系統(tǒng)中最關(guān)鍵的20%,關(guān)注在系統(tǒng)非功能性需求

文化論

架構(gòu)是關(guān)于系統(tǒng)一些的決策

?

(二)?架構(gòu)的分類

架構(gòu)由于應(yīng)用的不同而存在不同。大體而言,我們可以將當(dāng)前的應(yīng)用分為如下四種:互聯(lián)網(wǎng)應(yīng)用、企業(yè)應(yīng)用、桌面/移動應(yīng)用和游戲。

需要一提的是,雖然幾種應(yīng)用的存在一定的模糊性,某種技術(shù)為多種應(yīng)用所共用,例如很多的企業(yè)應(yīng)用基于互聯(lián)網(wǎng)技術(shù)SaaS,以及移動設(shè)備的支持。但依然存在很大的不同。

?

特別的,對于企業(yè)架構(gòu),大體存在如下幾種流派:

1.?????? TOGAF, OpenGroup組織提出,圍繞業(yè)務(wù)、應(yīng)用、技術(shù)和數(shù)據(jù)四個(gè)方面描述架構(gòu);

2.?????? DoDAF/MoDAF,美國和英國國防部提出的架構(gòu)方案;

3.?????? Zachman Framework, 根據(jù)不同角色的5W1H來審視架構(gòu);

4.?????? 4+1視圖,由Philippe Kruchten提出,并被RUP采納;

(三)?架構(gòu)的關(guān)鍵非功能指標(biāo)

通常來講,架構(gòu)所關(guān)注的非功能需求可以分為三個(gè)角度5個(gè)特性,如下:

角度?

特性?

說明?

運(yùn)營角度

伸縮性

主要為水平擴(kuò)展能力

可靠性

包括容錯(cuò)性、可用性和安全性等;

開發(fā)角度

維護(hù)性

擴(kuò)展性

能否快速應(yīng)對業(yè)務(wù)的變化

應(yīng)用角度

易用性

對最終用戶是否友好

非功能性指標(biāo)當(dāng)然不止這些,如下是一些參考:

1.???????? ISO 9126提出的質(zhì)量特性:

????

?

2.???????? 或者通過如下三個(gè)視圖來進(jìn)行:

?????????????????????????????? i.??????? 業(yè)務(wù)視角

Time To MarketCost and BenefitsProjected life timeTargeted MarketIntegration with Legacy SystemRoll back Schedule

???????????????????????????? ii.??????? 最終用戶視角

PerformanceAvailabilityUsabilitySecurity

??????????????????????????? iii.??????? 開發(fā)視角

MaintainabilityPortabilityReusabilityTestability

3.???????? 也可以通過諸如:簡潔性、清晰和一致性等指標(biāo)。

?

不同類型的應(yīng)用關(guān)注點(diǎn)會有很大不同,例如:互聯(lián)網(wǎng)應(yīng)用由于面臨大量的最終用戶,會特別關(guān)注于伸縮性、可靠性和易用性,這并不是說互聯(lián)網(wǎng)應(yīng)用不關(guān)注維護(hù)性和擴(kuò)展性,只是會更加強(qiáng)調(diào)另外三個(gè)特性;而企業(yè)應(yīng)用由于關(guān)注于數(shù)據(jù)、流程以及業(yè)務(wù)的適應(yīng)性,會更多得強(qiáng)調(diào)維護(hù)性和擴(kuò)展性,而其他特性如易用性相對弱化(面對內(nèi)部用戶,強(qiáng)制使用),伸縮性(內(nèi)部用戶訪問量少,大部分情況下通過現(xiàn)有硬件即可支持)。同時(shí),企業(yè)應(yīng)用對數(shù)據(jù)一致性和準(zhǔn)確性要求非常高,而互聯(lián)網(wǎng)應(yīng)用相對可以容忍一定的不一致性和錯(cuò)誤。因此,一個(gè)企業(yè)應(yīng)用的架構(gòu)師可能無法設(shè)計(jì)互聯(lián)網(wǎng)應(yīng)用的架構(gòu)。

?

二、???????????? 架構(gòu)有什么?

架構(gòu)有什么,通常會來一張或者一堆好看的圖畫。既然本篇不討論具體應(yīng)用,故而也拿不出啥圖了,也不想討論這些。因?yàn)椴煌膽?yīng)用存在的差異,非本文所能涵蓋。這里就想討論下形形色色架構(gòu)圖的背后的內(nèi)容,以及隸屬架構(gòu)但未在架構(gòu)圖表達(dá)的內(nèi)容。

?

《易經(jīng)·系辭》有云:“形而上者謂之道,形而下者謂之器”,將架構(gòu)分為“形而上”和“形而下”兩個(gè)部分,如下圖:

????

?

(一)?形而上

形而上體系中,除去前置內(nèi)容,分為文化和支撐兩大塊。

其中,文化部分里最重要的就是原則方法論,例如:關(guān)注點(diǎn)分離原則(SoC),面向?qū)ο蠓治鲈O(shè)計(jì)和領(lǐng)域驅(qū)動設(shè)計(jì)等等。在此之下,就是架構(gòu)模式算法,常見架構(gòu)模式為:結(jié)構(gòu)化(分層、管道流、黑板)、分布式(代理和管道流)、交互系統(tǒng)(MVCPAC)和適配系統(tǒng)(微內(nèi)核、元數(shù)據(jù))。當(dāng)然還有更低一層次的設(shè)計(jì)模式(創(chuàng)建、結(jié)構(gòu)和行為)。

(二)?形而下

形而下分為三個(gè)部分,運(yùn)行時(shí)、工具和文檔。

其中,運(yùn)行時(shí)的內(nèi)容按照重要性依次為:語言、平臺/中間件、框架、類庫和工具,具體在企業(yè)應(yīng)用中就是:Java/C#Windows/LinuxApplication Server/DatabaseSpring/Hibernate等等。

如果說運(yùn)行時(shí)決定最終能力,則工具就事關(guān)效率。工具中最常見的是集成開發(fā)環(huán)境了,此外還有配置、部署和測試工具。

文檔部分是另一個(gè)重要的內(nèi)容,應(yīng)包括:視圖(從不同角色出發(fā),可以參考4+1),范例和各種指導(dǎo)參考文檔。

?

?

三、???????????? 架構(gòu)如何設(shè)計(jì)?

如果把“形而下”當(dāng)成架構(gòu)設(shè)計(jì)的產(chǎn)出,那么架構(gòu)設(shè)計(jì)往前追溯,就有輸入和加工過程。

(一)?架構(gòu)的輸入

架構(gòu)的輸入包括三個(gè)部分:目標(biāo)、需求和相應(yīng)約束。其中:目標(biāo)是大方向內(nèi)容,需求關(guān)注在細(xì)節(jié),而約束對目標(biāo)的達(dá)成提供了限定。特別的,關(guān)注在非功能性指標(biāo)上。

(二)?架構(gòu)的設(shè)計(jì)過程

架構(gòu)的設(shè)計(jì)從需求分析開始,結(jié)合參考模型或者已有架構(gòu)體系,結(jié)合原則、方法論等等作料。其主要活動有:技術(shù)選型、腳手架/框架/平臺搭建等等。

?????? 關(guān)于具體過程的描述,可見《如何定義和建立架構(gòu)》。

?

?

?

四、???????????? 架構(gòu)如何評估

架構(gòu)設(shè)計(jì)出后一個(gè)重要的工作是對架構(gòu)(形而下部分)進(jìn)行評估,進(jìn)行架構(gòu)評估的必要性在:使得架構(gòu)設(shè)計(jì)工作形成閉環(huán),確保當(dāng)前架構(gòu)是合適和正確的。

大體上,架構(gòu)評估有三種方法:

·?????????? ATAM: Architecture Tradeoff Analysis Method

·?????????? SAAM: Software Architecture Analysis Method

·?????????? ARID: Active Reviews for Intermediate Designs

在進(jìn)行架構(gòu)評估工作時(shí),首先要確定架構(gòu)評估的參與人,包括相應(yīng)的干系人和獨(dú)立的評估隊(duì)伍;然后是確定評估的時(shí)機(jī):早期(在架構(gòu)設(shè)計(jì)期間就參與評估)和晚期(傳動的,在架構(gòu)設(shè)計(jì)完成后)。

評估內(nèi)容包括如下:

1.???????? 首先是要滿足其輸入:目標(biāo)、需求和約束;

2.???????? 各項(xiàng)的非功能性指標(biāo);

?

五、???????????? 小結(jié)

以如下思維導(dǎo)圖作為本文的小結(jié):

????

轉(zhuǎn)載于:https://www.cnblogs.com/yimlin/archive/2011/07/01/2095575.html

總結(jié)

以上是生活随笔為你收集整理的关于架构的思考的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。