軟件架構(gòu)I:基礎(chǔ)概念

本書討論如下內(nèi)容:

  • 架構(gòu)模式:許多架構(gòu)決策的技術(shù)基礎(chǔ)。
  • 組件:識(shí)別款青、耦合做修、內(nèi)聚、分區(qū)和粒度抡草。
  • 軟技能:有效的團(tuán)隊(duì)管理饰及、會(huì)議、談判康震、演示等燎含。
  • 現(xiàn)代性:在過(guò)去幾年中發(fā)生了根本性變化的工程實(shí)踐和操作方法。
  • 架構(gòu)作為一門工程學(xué)科:可重復(fù)的結(jié)果腿短、指標(biāo)和具體的評(píng)估為軟件體系結(jié)構(gòu)增加了嚴(yán)格性屏箍。

"軟件架構(gòu)師"職位出現(xiàn)在眾多最佳職位列表的頂部。但卻沒(méi)有科學(xué)的方法教授如何成為架構(gòu)師的原因橘忱?

  • 首先赴魁,業(yè)界對(duì)軟件架構(gòu)本身沒(méi)有很好的定義。
  • 第二钝诚,軟件架構(gòu)師的角色的職責(zé)范圍不斷地?cái)U(kuò)大颖御。
  • 第三,由于快速發(fā)展的軟件開發(fā)生態(tài)系統(tǒng)凝颇,軟件架構(gòu)的目標(biāo)不斷發(fā)生變化潘拱。
  • 第四,關(guān)于軟件架構(gòu)的許多材料都已成為過(guò)去時(shí)拧略。

軟件架構(gòu)由系統(tǒng)的結(jié)構(gòu)(表示支持架構(gòu)的粗黑線)和系統(tǒng)必須支持的架構(gòu)特征(``-ilities'')芦岂、架構(gòu)決策以及最終的設(shè)計(jì)原則組成。

軟件架構(gòu)組成

系統(tǒng)的結(jié)構(gòu)是指系統(tǒng)所實(shí)現(xiàn)的架構(gòu)樣式的類型(如微服務(wù)垫蛆,分層或微內(nèi)核)盔腔。 僅通過(guò)結(jié)構(gòu)來(lái)描述架構(gòu)并不能完全闡明架構(gòu)。

系統(tǒng)的結(jié)構(gòu)

架構(gòu)特征是定義軟件架構(gòu)的另一個(gè)維度。 架構(gòu)特征定義了系統(tǒng)的成功標(biāo)準(zhǔn)弛随,該標(biāo)準(zhǔn)通常與系統(tǒng)的功能正交瓢喉。 請(qǐng)注意,列出的所有特征都不需要了解系統(tǒng)功能舀透,但是它們是使系統(tǒng)正常運(yùn)行所必需的栓票。

架構(gòu)特征

架構(gòu)決策定義了應(yīng)如何構(gòu)建系統(tǒng)的規(guī)則。

架構(gòu)決策

如果由于某種條件或其他約束而無(wú)法在系統(tǒng)的某個(gè)部分中實(shí)施特定的體系結(jié)構(gòu)決策愕够,則可以通過(guò)稱為方差的方法打破該決策(或規(guī)則)走贪。 大多數(shù)組織都有架構(gòu)審查委員會(huì)(ARB)或首席架構(gòu)師使用的差異模型。 這些模型將尋求與特定標(biāo)準(zhǔn)或架構(gòu)決策的差異的過(guò)程形式化惑芭。 ARB將分析特定架構(gòu)決策的例外情況(如果沒(méi)有ARB坠狡,則由首席架構(gòu)師進(jìn)行分析),并根據(jù)理由和權(quán)衡取舍批準(zhǔn)或拒絕該例外情況遂跟。

設(shè)計(jì)原則與體系結(jié)構(gòu)決定的不同之處在于逃沿,設(shè)計(jì)原則是一種準(zhǔn)則,而不是一成不變的規(guī)則幻锁。

與給定的角色凯亮,職務(wù)或職位描述無(wú)關(guān),對(duì)軟件架構(gòu)師有八項(xiàng)核心期望

  • 制定架構(gòu)決策
    期望架構(gòu)師定義用于指導(dǎo)團(tuán)隊(duì)哄尔、部門或整個(gè)企業(yè)的技術(shù)決策的架構(gòu)決策和設(shè)計(jì)原則假消。
  • 持續(xù)分析架構(gòu)
    期望架構(gòu)師不斷分析架構(gòu)和當(dāng)前技術(shù)環(huán)境,然后提出改進(jìn)建議岭接。
  • 緊跟最新趨勢(shì)
    希望建筑師能夠了解最新的技術(shù)和行業(yè)趨勢(shì)富拗。
  • 確保遵守決定
    期望架構(gòu)師確保遵守架構(gòu)決策和設(shè)計(jì)原則。
  • 多樣的曝光和經(jīng)驗(yàn)
    架構(gòu)師應(yīng)具有多種多樣的技術(shù)鸣戴、框架媒峡、平臺(tái)和環(huán)境。
  • 具有業(yè)務(wù)領(lǐng)域知識(shí)
    架構(gòu)師應(yīng)具備一定水平的業(yè)務(wù)領(lǐng)域?qū)I(yè)知識(shí)葵擎。
  • 具有人際交往能力
    建筑師應(yīng)具備出色的人際交往能力谅阿,包括團(tuán)隊(duì)合作、促進(jìn)和領(lǐng)導(dǎo)才能酬滤。
  • 了解和駕馭政治
    期望架構(gòu)師了解企業(yè)的政治氛圍并能夠駕馭政治签餐。
image.png

架構(gòu)交叉點(diǎn)

  • 工程實(shí)踐
    傳統(tǒng)上,軟件體系結(jié)構(gòu)與用于創(chuàng)建軟件的開發(fā)過(guò)程是分開的盯串。 存在數(shù)十種流行的方法來(lái)構(gòu)建軟件氯檐,包括瀑布式和許多敏捷的風(fēng)格(例如Scrum方法、極限編程体捏、精益和Crystal方法)冠摄,這些方法大部分不會(huì)影響軟件體系結(jié)構(gòu)糯崎。
  • 運(yùn)維/DevOps
    由于對(duì)架構(gòu)公認(rèn)的一些重新思考,DevOps的出現(xiàn)是架構(gòu)與相關(guān)領(lǐng)域之間最近最明顯的交集河泳。 多年以來(lái)沃呢,許多公司都將運(yùn)維視為與軟件開發(fā)分開的功能。 他們通常將運(yùn)維外包給另一家公司以節(jié)省成本拆挥。 在1990年代和2000年代設(shè)計(jì)的許多架構(gòu)都假定架構(gòu)師無(wú)法控制運(yùn)維薄霜,并且圍繞該限制進(jìn)行防御性的構(gòu)建。
  • 流程
    另一個(gè)公理是纸兔,軟件架構(gòu)通常與軟件開發(fā)過(guò)程正交惰瓜。構(gòu)建軟件(過(guò)程)的方式對(duì)軟件架構(gòu)(結(jié)構(gòu))的影響很小。因此汉矿,盡管團(tuán)隊(duì)使用的軟件開發(fā)過(guò)程對(duì)軟件架構(gòu)有一定影響(特別是在工程實(shí)踐方面)崎坊,但從歷史上看,它們大多是分開的洲拇。大多數(shù)有關(guān)軟件架構(gòu)的書都忽略了軟件開發(fā)過(guò)程奈揍,對(duì)可預(yù)測(cè)性等問(wèn)題做出了虛假的假設(shè)。但是呻待,團(tuán)隊(duì)開發(fā)軟件的過(guò)程會(huì)影響軟件架構(gòu)的許多方面。例如队腐,由于軟件的性質(zhì)蚕捉,在過(guò)去的幾十年中,許多公司都采用了敏捷開發(fā)方法柴淘。敏捷項(xiàng)目中的架構(gòu)師可以進(jìn)行迭代開發(fā)迫淹,因此可以更快地反饋決策。反過(guò)來(lái)为严,這使架構(gòu)師可以更加積極地進(jìn)行實(shí)驗(yàn)以及依賴反饋的其他知識(shí)敛熬。
  • 數(shù)據(jù)
    應(yīng)用程序開發(fā)中有很大一部分包括外部數(shù)據(jù)存儲(chǔ),通常是關(guān)系數(shù)據(jù)庫(kù)(或越來(lái)越多的NoSQL)第股。 但是应民,許多有關(guān)軟件架構(gòu)的書都只包含對(duì)架構(gòu)這一重要方面的簡(jiǎn)要介紹。 代碼和數(shù)據(jù)具有共生關(guān)系:沒(méi)有其他代碼夕吻,一個(gè)代碼就無(wú)用诲锹。

軟件架構(gòu)法則

軟件體系結(jié)構(gòu)中的所有內(nèi)容都是一個(gè)折衷方案。 ——軟件架構(gòu)第一定律
為什么比如何更重要涉馅。 ——軟件架構(gòu)第二定律

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末归园,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子稚矿,更是在濱河造成了極大的恐慌庸诱,老刑警劉巖捻浦,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異桥爽,居然都是意外死亡朱灿,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門聚谁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)母剥,“玉大人,你說(shuō)我怎么就攤上這事形导』诽郏” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵朵耕,是天一觀的道長(zhǎng)炫隶。 經(jīng)常有香客問(wèn)我,道長(zhǎng)阎曹,這世上最難降的妖魔是什么伪阶? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮处嫌,結(jié)果婚禮上栅贴,老公的妹妹穿的比我還像新娘。我一直安慰自己熏迹,他們只是感情好檐薯,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著注暗,像睡著了一般坛缕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上捆昏,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天赚楚,我揣著相機(jī)與錄音,去河邊找鬼骗卜。 笑死宠页,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的寇仓。 我是一名探鬼主播勇皇,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼焚刺!你這毒婦竟也來(lái)了敛摘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎脾歧,沒(méi)想到半個(gè)月后崖疤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體邻奠,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡笑跛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年瘾杭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了诫肠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奥务。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡泄私,死狀恐怖房揭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晌端,我是刑警寧澤捅暴,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站咧纠,受9級(jí)特大地震影響蓬痒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜漆羔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一梧奢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧演痒,春花似錦亲轨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至诊沪,卻和暖如春养筒,著一層夾襖步出監(jiān)牢的瞬間曾撤,已是汗流浹背端姚。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留挤悉,地道東北人渐裸。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像装悲,于是被迫代替她去往敵國(guó)和親昏鹃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容