《一線架構師實踐指南》讀後感(一)

《一線架構師實踐指南》讀後感(一)

一、架構和設計模式區別

  • 設計模式是一套解決類似問題的經驗的總結。採用設計模式的目的是爲了可重用代碼。而架構模式也一個通用的、可重用的解決方案。我覺得他們的區別是,設計模式跟代碼有直接關係

  • 架構模式站在系統全局的角度解決子系統之間的關係、功能需求與非功能的優先級與取捨原則等。

二、分層模式(MVC設計思想)

  • 這種模式也稱爲多層體系架構模式。它可以用來構造可以分解爲子任務組的程序,每個子任務都處於一個特定的抽象級別。每個層都爲下一個提供更高層次服務。分層模式的關鍵點在於確定依賴:即通過分層,可以限制子系統間的依賴關係,

  • 使系統以更鬆散的方式耦合,從而更易於維護。

  • 一般web系統中最常見的是如下所列的4層:表示層,業務邏輯層,持久層,應用層。

img

模式介紹

  • 表示層(也稱爲UI層):主要對用戶的請求接受,以及數據的返回,爲客戶端提供應用程序的訪問。
  • 應用層(也稱爲服務層):服務層的作用就是將表現層與業務邏輯層之間完成解耦。那麼表現層中就不會出現任何的業務代碼,當然這樣帶來的好處也是顯而易見的,就是當我們修改業務層代碼時,我們不需要修改表現層的代碼,

當然如果服務層設計的不好,那麼可能會造成反效果。

  • 業務邏輯層(也稱爲領域層):主要是針對具體的問題的操作,也可以理解成對數據層的操作,對數據業務邏輯處理,如果說數據層是積木,那邏輯層就是對這些積木的搭建。無疑是系統架構中體現核心價值的部分。它的關注點

主要集中在業務規則的制定、業務流程的實現等與業務需求有關的系統設計,也即是說它是與系統所應對的領域邏輯有關

  • 數據訪問層(也稱爲持久化層):主要是針對非原始數據(數據庫或者文本文件等存放數據的形式)的操作層,而不是指原始數據,也就是說,是對數據庫的操作,而不是數據,具體爲業務邏輯層或表示層提供數據服務。

使用場景

  • 一般的桌面應用程序
  • 電子商務Web應用程

模式特點

  • 每個模塊必須屬於某個層次,爲上層提供服務;同時委派任務給下層模塊。
  • 任何一個模塊,都不能逆層次調用;屬於下層的模塊,不得調用(耦合)上層或上層次的模塊。任何一個模塊,都不得跨層次調用。

使用場景

設計模式實現

  門面模式 ——我們對於每個模塊或者每個層次都會設計一個“門面”來降低耦合的複雜程度。

  策略模式——抽象層次會隱藏底層的實現細節,這就是策略模式最基本的設計,我們往往會把上層作爲功能接口,下層作爲可選的策略來實現。

優點

1、開發人員可以只關注整個結構中的其中某一層;

2、可以很容易的用新的實現來替換原有層次的實現;

3、可以降低層與層之間的依賴;

4、有利於標準化;

5、利於各層邏輯的複用。

6、結構更加的明確

7、在後期維護的時候,極大地降低了維護成本和維護時間

缺點

1、降低了系統的性能。這是不言而喻的。如果不採用分層式結構,很多業務可以直接造訪數據庫,以此獲取相應的數據,如今卻必須通過中間層來完成。

2、有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在表示層中需要增加一個功能,爲保證其設計符合分層式結構,可能需要在相應的業務邏輯層和數據訪問層中都增加相應的代碼。

3、增加了開發成本。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章