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