閱讀《架構(gòu)整潔之道》

想弄明白問題

  • 軟件架構(gòu)是什么,為什么要有;
  • 如何定義好的架構(gòu),有哪些指標(biāo);
  • 如何實(shí)現(xiàn)好的軟件架構(gòu)。

讀后感

軟件架構(gòu)是什么,為什么要有

參照第15章的描述,

軟件架構(gòu)這項(xiàng)工作的實(shí)質(zhì)就是規(guī)劃如何將系統(tǒng)切分成組件,并安排組件之間的排列關(guān)系,以及組件之間互相通信的方式。

為什么要這么做,

設(shè)計(jì)軟件架構(gòu)的目的,就是為了在工作中更好地對(duì)這些組件進(jìn)行研發(fā)、部署、運(yùn)行以及維護(hù)。

具體來說,根據(jù)單一職責(zé)原則,切分系統(tǒng)成多個(gè)組件,利用依賴反轉(zhuǎn)原則調(diào)整組件的依賴關(guān)系,根據(jù)同步還是異步設(shè)計(jì)組件之前的通信接口。這么做的目的很簡(jiǎn)單:降低開發(fā)、部署、運(yùn)行以及維護(hù)的成本,用最少的人力和物力來完成系統(tǒng)的構(gòu)建和維護(hù)。

如何定義好的架構(gòu),有哪些指標(biāo)

書里面給了三個(gè)指標(biāo):不穩(wěn)定性(A)、抽象性(I)、距離主序列線的距離(D)。

  • A: 假設(shè)a_{out}表示該組件依賴的組件數(shù)量,a_{in}表示該組件被依賴的組件數(shù)量,那么A = a_{out} / (a_{out} + a_{in}),當(dāng)前組件依賴的其它組件越多,則越不穩(wěn)定;
  • I: 假設(shè)C_i表示組件內(nèi)抽象類的數(shù)量,C_c表示具體實(shí)現(xiàn)類的數(shù)量,則I=C_i/(C_i + C_c),當(dāng)前組件內(nèi)的抽象類占比越高,則越抽象;
  • D: 先定義主序列線,以A為縱軸,I為橫軸,只取第一象限,則主序列線為A+I-1=0的線段,D表示當(dāng)前組件距離主序列線的距離,值越小,說明設(shè)計(jì)越好。

如何實(shí)現(xiàn)好的軟件架構(gòu)

這里引入了一個(gè)概念:層次,一個(gè)組件的層次越高,它距離輸入/輸出的距離也就越遠(yuǎn)。

在項(xiàng)目初期,需要保持架構(gòu)的可選項(xiàng),延遲策略無關(guān)的決策,比如選用什么數(shù)據(jù)庫、web框架、展示界面等。將修改原因、修改時(shí)間、相同層次的代碼定義到一個(gè)組件,并通過定義抽象類的方式,讓低層次的組件依賴高層次的組件。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文是《架構(gòu)整潔之道》的讀書心得,作者將書中內(nèi)容拆解后再組織,不僅加入了個(gè)人的獨(dú)到見解,而且用一張?jiān)敿?xì)的知識(shí)脈絡(luò)圖...
    程序員小2閱讀 269評(píng)論 0 1
  • 目標(biāo) 用最少的人力成本滿足構(gòu)建和維護(hù)該系統(tǒng)的需求 衡量指標(biāo) 版本迭代 -- 工程師團(tuán)隊(duì)規(guī)模 版本迭代 -- 代碼總...
    小小一技術(shù)驛站閱讀 690評(píng)論 0 0
  • 目標(biāo) 用最少的人力成本滿足構(gòu)建和維護(hù)該系統(tǒng)的需求 衡量指標(biāo) 版本迭代——工程師團(tuán)隊(duì)規(guī)模 版本迭代——代碼總行數(shù) 版...
    光劍書架上的書閱讀 345評(píng)論 0 3
  • 第1部分:概述 軟件架構(gòu)的終極目標(biāo)時(shí),用最小的人力成本來滿足構(gòu)建和維護(hù)該系統(tǒng)的需求 本書的主題:描述什么是優(yōu)秀的、...
    YouAreRight閱讀 614評(píng)論 0 1
  • 2022年四月第18本書 閱讀速度4000字/分鐘1、本書主題:軟件架構(gòu)設(shè)計(jì)入門 2、速讀建議:先看每章末尾小結(jié),...
    師從書閱讀 374評(píng)論 0 1

友情鏈接更多精彩內(nèi)容