企業應用架構閱讀筆記2

2022-06-01 12:54:10 字數 1846 閱讀 5796

· 領域模型:使用不同職責的物件來聯合解決業務問題,而不是通過事務指令碼來處理資料 

· 阻抗不匹配:物件模型和關係型資料庫之間的不匹配,通常通過物件-關係對映(orm)解決 

· 軟體事務的四個特性 

1.      原子性:要麼全部成功,要麼全部回滾

2.      一致性:事務開始和完成時,資源都不應該被破壞

3.      隔離性:事務成功完成之前,其影響不應該被看到

4.      永續性:事務不會因為任何崩潰而丟失更改 

· 事務的隔離級別(由高而低)

1.      可序列化:完全隔離,併發執行的結果與以某種順序依次執行的結果相同

2.      可重複讀:允許幻讀,更新者向集合中插入了一些元素而讀的人只能看到其中一部分

3.      讀已提交:允許不可重複讀,所有已經提交的資料都可以讀

4.      讀未提交:允許髒讀,允許讀未提交的資料 

· 會話狀態:無狀態物件是一種不良設計;用無狀態的伺服器可以實現有狀態的會話;如果有很多會話空閒,可以考慮用資料庫儲存會話;如果需要頻繁訪問會話,則應該使用伺服器會話 

· 分布策略:分布物件的第一定律:不要使用分布物件;分布物件的第二定律:節約使用分布物件

領域邏輯模式分為

事物指令碼、領域模型、表模組和服務層四種模式

很多設計者喜歡把業務邏輯分成兩類:領域邏輯和應用邏輯,前者只與問題領域有關、而後者有時被稱為工作流邏輯

1. 事務指令碼

通過使用sql語句或者儲存過程返回記錄集,記錄集在系統的各層之間傳遞,在必要的時候可以通過更新記錄集、使用sql語句或者儲存過程的方式更新資料庫

事務指令碼勝在簡單,通常應用在小型的專案和系統中,但業務邏輯越來越複雜,使用這一模式就越來越難以保持良好設計,因為在程式裡面充斥了大量的sql語句和命令,一旦資料結構發生更改或者需要對系統進行修改,可能會出現許多難以發現的問題

2. 領域模型

領域模型是合併了行為和資料的領域的物件模型,領域模型建立了一張由互聯物件組成的網,其中的每個物件都代表著某個有意義的個體,可能大到乙個公司或者小到訂單的一行

簡單領域可以使用活動記錄,即簡單的單條資料記錄和單個物件對應的模式,乙個物件對應資料庫中的乙個表

複雜領域模型需要使用資料對映器,它可能使用繼承、策略或者其他的設計模式,是一張由互聯的細粒度物件組成的複雜網路,我們經常會看到:多個類通過互動來完成很簡單的任務

在物件導向技術中,通過從乙個物件到另乙個物件的連續傳遞可以把行為傳遞給最有資格處理的物件,它同時消除了很多條件判斷行為

領域模型的要點在於隱藏資料庫的存在

3. 表模組

表模組是處理某一資料庫表或檢視中所有行的業務邏輯的乙個例項

表模組通過強型別或弱型別的資料集與物件結合使用,使用主鍵查詢資料,是.net中使用的很多的一種模式,主要使用主鍵、半物件化的運算元據---之所以說是半結構化,是因為所用的物件基本上只具有行為,通過傳入引數執行特定的操作或者查詢記錄集,而幾乎不承載任何資料

在.net中,這種模式因為其容易和ui進行繫結和互動,所以倍受歡迎

4. 服務層

通過乙個服務層來定義應用程式邊界,在服務層中建立一組可用的操作的集合,並在每個操作內部協調應用程式的響應

服務層是一種組織業務邏輯的模式,有點類似於業務外觀;web service通常擔任著服務層的角色

服務層可以通過領域外觀方法和操作指令碼方法實現,領域外觀方法中,服務層以領域模型之上的瘦外觀集合方式出現,負責實現外觀的類中不不包含業務邏輯;而在操作指令碼方法中

,服務層由一組相對複雜的類組成,這些類直接實現應用邏輯,但將領域邏輯委託給封裝好的領域物件類

服務層的類的介面是粗粒度的,適合於遠端呼叫。但是,在開始時,我們應該僅設計乙個本地呼叫的服務層,在需要遠端呼叫時,再在服務層上增加乙個遠端外觀。

《企業應用架構模式》 閱讀筆記2

這方面的理論知識可以參考eric evans的 領域驅動幹設計 軟體核心複雜性應對之道 實踐相關的內容可以參考vaughn vernon的 實現領域驅動設計 也可以參考我的系列部落格 ddd 使用領域驅動設計思想實現業務系統。初學者在實踐ddd的時候,首先需要改變思維方式,業務領域的分析和建模是關鍵...

架構周閱讀筆記2

餘額寶使用者數達到接近國人數量的1 4,日交易峰值可以達到兩億筆,最大併發數可以達到每秒五千筆。餘額寶創新來說,業務上的創新,他對t 0發揮到極致,是現金管理工具,是底層賬戶。還有就是嵌入式直銷,把貨幣 嫁接到支付寶去。技術創新包括 直銷和ta清算的整合。交易的簡化。餘額寶是核心業務在雲上執行的系統...

軟體架構實踐閱讀筆記2

軟體架構實踐閱讀筆記2 本書的第二部分講的是建立架構 設計師如何建立構架?這是本書第二部分要了解的重點。因為質量屬性的實現對系統的成功至關重要,因此我們開始對質量屬性以及設計師如何借助他的工具箱來實現質量屬性進行討論。對 壞做出評判的通常是旁觀者 booth tarkington的解釋 這對設計師來...