重溫軟件架構(gòu)設(shè)計(jì)-程序員向架構(gòu)師轉(zhuǎn)型必備
這本書(shū)是溫老師2012年出版的書(shū),講述的是要想成為一個(gè)入門(mén)架構(gòu)師,從需求到底如何對(duì)應(yīng)到架構(gòu)設(shè)計(jì),里面有很多方法論和工具,可以幫助我們打通需求到架構(gòu)的道路。本書(shū)2014年底讀過(guò)一遍,但一直沒(méi)空整理,最近又抽空重新學(xué)習(xí)了一遍,把書(shū)中的核心內(nèi)容整理出來(lái),一是形成知識(shí)結(jié)構(gòu)幫助記憶,二是可以幫助別人快速掌握本書(shū)的核心知識(shí),具體內(nèi)容如下:
(一)基本概念
- 軟件架構(gòu)指的是計(jì)算機(jī)與組件之間的交互,同時(shí)也可以理解為模塊、職責(zé)劃分、接口定義、交互機(jī)制、開(kāi)發(fā)技術(shù)、組織元素、子系統(tǒng)、非功能性等一系列架構(gòu)問(wèn)題的樹(shù)形決策
- 軟件架構(gòu)一方面從大局著手,就技術(shù)方面的重大問(wèn)題作出決策,構(gòu)造一個(gè)由粗粒度模塊組成的解決方案,從而可以把不同模塊分配給不同小組分頭開(kāi)發(fā);另一方面,軟件架構(gòu)設(shè)計(jì)方案規(guī)定了各模塊之間如何交互的機(jī)制和結(jié)構(gòu),在開(kāi)發(fā)小組之間起到溝通橋梁和合作契約的作用。(模塊劃分及之間的相互關(guān)系)
- 架構(gòu)設(shè)計(jì)時(shí)需要考慮的幾種角色人員:
- 用戶:UI、功能需求、易用性
- 客戶:業(yè)務(wù)規(guī)則、業(yè)務(wù)目標(biāo)、上線期限、預(yù)算
- 開(kāi)發(fā)人員:模塊設(shè)計(jì)、交互方式、可重用性
- 管理人員:模塊劃分及交互關(guān)系、配置管理
(二)從需求到架構(gòu)的步驟
- 尋找需求,包括功能需求、質(zhì)量需求、約束性需求,從中選出重大需要,特色需求以及高風(fēng)險(xiǎn)需求,并使用一定的領(lǐng)域建模術(shù)語(yǔ)進(jìn)行需求描述;
- 根據(jù)選擇的大需求進(jìn)行概念架構(gòu),選取架構(gòu)大方向,包括劃分頂級(jí)子系統(tǒng),選型架構(gòu)風(fēng)格,選型開(kāi)發(fā)技術(shù),選型集成技術(shù),選型二次開(kāi)發(fā)技術(shù);
- 將概念架構(gòu)進(jìn)一步細(xì)化到模塊+接口級(jí),得到邏輯架構(gòu)設(shè)計(jì)(模塊劃分、接口定義、領(lǐng)域模型)、開(kāi)發(fā)架構(gòu)設(shè)計(jì)(技術(shù)選型、文件劃分、編譯關(guān)系)、運(yùn)行架構(gòu)設(shè)計(jì)(技術(shù)選型、控制流劃分、同步關(guān)系)、物理架構(gòu)設(shè)計(jì)(硬件分布、軟件部署、方案優(yōu)化)、數(shù)據(jù)架構(gòu)設(shè)計(jì)(技術(shù)選型、存儲(chǔ)格式、數(shù)據(jù)分布);
- 對(duì)細(xì)化后的架構(gòu)進(jìn)行驗(yàn)證。
(三)每一步驟的關(guān)鍵內(nèi)容注意事項(xiàng)