世間萬物均有生滅.隨著時(shí)間的推移,事物主體從生到滅的狀態(tài)變化組成了生命周期.
為了效率,將生命周期中的非核心生命周期拆分出去,其占用的時(shí)間用于提升核心生命周期.
由此產(chǎn)生了分工,也同時(shí)產(chǎn)生了架構(gòu).
架構(gòu)其實(shí)就是指不同主體生命周期的拆分和組織方式.
架構(gòu)包含業(yè)務(wù)架構(gòu),人員組織架構(gòu),軟件架構(gòu),其核心都圍繞利益.
而架構(gòu)師就是要識(shí)別主體的核心生命周期,通過合理的拆分和組織,保證業(yè)務(wù)可以不斷增長(zhǎng).
書中闡述了何為概念,即對(duì)某一事物的作用和所解決問題的個(gè)性描述
書中還以軟件架構(gòu)為例,從軟件生命周期,拆分為研發(fā)生命周期和運(yùn)行生命周期.
研發(fā)生命周期中包含如何組織代碼以及各代碼的含義:
service(服務(wù)) -> manager(粘合代碼)
manager(粘合代碼) -> domain(領(lǐng)域?qū)ο?amp;業(yè)務(wù)邏輯)
manager(粘合代碼) -> repository(存儲(chǔ))
service負(fù)責(zé)訪問通道,把請(qǐng)求數(shù)據(jù)轉(zhuǎn)換成manager需要的數(shù)據(jù)結(jié)構(gòu),或者把manager返回的領(lǐng)域?qū)ο?轉(zhuǎn)換成用戶需要的數(shù)據(jù)結(jié)構(gòu)進(jìn)行返回.
manager粘合領(lǐng)域邏輯的調(diào)用以及對(duì)象狀態(tài)的加載和存儲(chǔ)調(diào)用.
domain負(fù)責(zé)處理業(yè)務(wù)邏輯
repository負(fù)責(zé)處理存儲(chǔ)和加載
單元測(cè)試主要針對(duì)domain.
書中最后以交易系統(tǒng)為例,詳細(xì)定義了交易系統(tǒng)中的若干概念及其對(duì)應(yīng)的現(xiàn)實(shí)世界所模擬的問題,包含:
交易:人與人之間進(jìn)行的等價(jià)交換過程,從開始的以物易物,到后來的以信用易物.
產(chǎn)品:包含兩大類,制造類產(chǎn)品和服務(wù)類產(chǎn)品,一個(gè)提供實(shí)物一個(gè)提供通道.產(chǎn)品強(qiáng)調(diào)生產(chǎn)屬性,而商品強(qiáng)調(diào)交易屬性.不同商品可能對(duì)應(yīng)同一類產(chǎn)品,如:一瓶礦泉水和一箱礦泉水是兩個(gè)商品,卻是同一類產(chǎn)品,即礦泉水.商品的單位是sku,即最小庫(kù)存單元,或叫交易單元.
用戶:產(chǎn)品的使用者.與客戶的區(qū)別主要在于,售前的主要角色為客戶,而售后才成為產(chǎn)品的用戶,如果交易不成立,則客戶不會(huì)成為用戶.
訂單:為記錄交易過程中的活動(dòng)狀態(tài)而產(chǎn)生.
交易系統(tǒng)的架構(gòu)拆分過程是圍繞交易核心生命周期,而把產(chǎn)品,用戶,支付等非核心生命周期進(jìn)行拆分,形成了一個(gè)樹狀架構(gòu).
最后,書中闡述了作者如何理解業(yè)務(wù)的事務(wù)與數(shù)據(jù)庫(kù)的事務(wù).
但我還是沒明白如何通過業(yè)務(wù)事務(wù)模型解決轉(zhuǎn)賬數(shù)據(jù)庫(kù)事務(wù)的問題,這里作為一個(gè)疑問點(diǎn).
全書整體的邏輯主線就是主體生命周期.生命周期拆分過程即架構(gòu)過程.
闡述了架構(gòu)的過程,原則,以及架構(gòu)與各個(gè)概念之前的關(guān)系.
對(duì)我而言的收獲在于,對(duì)于許多概念的認(rèn)知得到強(qiáng)化.
但閱讀過程中還是有些云里霧里的感覺,不理解作者想要解決讀者的什么問題.
可能作者只是想傳達(dá)一種思想或思維模式,而我還沒有完全透徹的理解.