字節(jié)高級(jí)架構(gòu)師推薦!程序員必讀之《軟件架構(gòu)》


前言
軟件架構(gòu)在一個(gè)成功的軟件交付中扮演關(guān)鍵角色,然而令人沮喪的是,很多團(tuán)隊(duì)都忽視了這一點(diǎn)。即使在最敏捷的團(tuán)隊(duì)中,軟件構(gòu)架這一角色也都是必需的,不管是由一個(gè)人還是整個(gè)團(tuán)隊(duì)共同扮演,但要尋求到預(yù)先和演化兩種構(gòu)架理念的平衡,往往還只是人們美好的意愿而并沒(méi)有變?yōu)楝F(xiàn)實(shí)。
有需要領(lǐng)取資料的可后臺(tái)私信扣【777】免費(fèi)領(lǐng)取
第一章 ? ?什么是軟件架構(gòu)

通過(guò)學(xué)習(xí)這部分,我們將了解軟件架構(gòu)是什么,架構(gòu)和設(shè)計(jì)的區(qū)別,敏捷的架構(gòu)意味著什么,以及為什么思考軟件架構(gòu)很重要。

架構(gòu)作為名詞來(lái)解釋時(shí),概括起來(lái)都與結(jié)構(gòu)有關(guān):將產(chǎn)品分解為一系列組件、模塊和交互這需要考慮整個(gè)產(chǎn)品,包括處理(建筑物的)供電、供水、空調(diào),或處理(軟件的)安全、配置錯(cuò)誤處理等橫切關(guān)注點(diǎn)的基礎(chǔ)設(shè)施服務(wù)。
第二章 ? 軟件架構(gòu)的種類


這部分將關(guān)注軟件架構(gòu)的角色,包括軟件架構(gòu)的角色是什么,需要哪類技能,以及為什么編碼、指導(dǎo)和合作很重要。

一個(gè)軟件系統(tǒng)很少孤立存在,可能有不少人要為整個(gè)架構(gòu)過(guò)程作貢獻(xiàn)。這包括了從需要理解和認(rèn)同架構(gòu)的直接開發(fā)團(tuán)隊(duì),一直到那些對(duì)安全性、數(shù)據(jù)庫(kù)、運(yùn)營(yíng)、維護(hù)或支持感興趣的人組成的擴(kuò)展團(tuán)隊(duì)。任何擔(dān)任軟件架構(gòu)角色的人都需要與這些人合作,以確保架構(gòu)能與周圍環(huán)境成功整合。如果不合作,就等著失敗吧。
第三章 ? 軟件設(shè)計(jì)

這部分是關(guān)于設(shè)計(jì)軟件的整個(gè)流程,特別是開始編碼前真正需要思考的事情。
軟件架構(gòu)談?wù)摰氖侵匾脑O(shè)計(jì)決策,其重要性以變動(dòng)的成本來(lái)衡量。對(duì)于那些從根本上塑造了最終軟件架構(gòu)的重要決策而言,起點(diǎn)是在高層次上對(duì)需求、約束和原則的理解。早些理解它們,將有助于避免將來(lái)昂貴的返工。
第四章 ? 可視化軟件
這部分是關(guān)于用一套輕量但有效的草圖對(duì)軟件架構(gòu)進(jìn)行可視化。

當(dāng)告訴人們我到世界各地去教人軟件架構(gòu)和如何繪圖時(shí),得到的反應(yīng)通常是懷疑或取笑。平心而論,不難看出這是為什么。軟件架構(gòu)的名聲已經(jīng)很差了,一說(shuō)“大局”往往會(huì)讓人想起分析癱瘓和一堆很少有人真正理解的 UML圖。畢竟,軟件開發(fā)行業(yè)在過(guò)去十年已經(jīng)有了長(zhǎng)足發(fā)展特別是敏捷宣言的影響以及由此催生的大量技術(shù)
第五章 ? 為軟件生成文檔


這部分是關(guān)于一個(gè)我們愛(ài)恨交加的重要話題:編寫文檔!

我曾被要求評(píng)審和參與開發(fā)沒(méi)有文檔的系統(tǒng)。你當(dāng)然可以從代碼的角度評(píng)估大部分問(wèn)題的答案,但這會(huì)很繁重。閱讀代碼的作用始終有限,但某些時(shí)候你可能需要向團(tuán)隊(duì)的其他人請(qǐng)教一些可題。如果沒(méi)有問(wèn)對(duì)問(wèn)題,你就得不到正確的答案:你不知道你未知的。
第六章 ? 開發(fā)生命周期中的軟件架構(gòu)

最后這部分將探討如何將前面的內(nèi)容融入軟件開發(fā)的日常工作,也會(huì)解答應(yīng)該做多少軟件架構(gòu)(以及預(yù)先設(shè)計(jì))這一問(wèn)題。

考慮架構(gòu)的驅(qū)動(dòng)力不需要花很長(zhǎng)時(shí)間,卻能為軟件設(shè)計(jì)的其他部分提供一個(gè)開始。當(dāng)然,這并不意味著架構(gòu)不應(yīng)該更改,特別是當(dāng)你開始編寫代碼、獲得反饋后。關(guān)鍵在于你現(xiàn)在有了一個(gè)框架和一定的工作范圍,能為團(tuán)隊(duì)提供一些經(jīng)常需要的愿景和指導(dǎo)。我的經(jīng)驗(yàn)是小方向有大用場(chǎng).
有需要領(lǐng)取資料的可后臺(tái)私信扣【777】免費(fèi)領(lǐng)取