軟件架構複雜度應對之道

技術邏輯與業務邏輯分離

分工與協做是人類發展史的主要動力,按照協做的角度,能夠將系統依照某種原則進行切分,技術與業務分離是最多見的方式。 能夠參考《》blog

業務邏輯抽象

回到業務邏輯自己,咱們能夠將核心業務邏輯中的邏輯進行抽象,這個過程須要一層層的抽象,好比將蘋果和梨歸類歸納爲水果,也能夠將桌子和椅子歸類歸納爲傢俱。可是怎樣才能將蘋果和椅子放在同一組中呢?class

僅僅提升一個抽象層次是不夠的,由於上一個抽象層次是水果和傢俱的範疇。所以,你必須提升到更高的抽象層次,好比將其歸納爲「商品」。im

能力下沉

能力下沉有兩個關鍵指標:技術

  1. 複用性,複用性是告訴咱們When(何時該下沉了),即有重複代碼的時候
  2. 內聚性,內聚性是告訴咱們How(要下沉到哪裏),功能有沒有內聚到恰當的實體上,有沒有放到合適的層次上(由於Domain層的能力也是有兩個層次的,一個是Domain Service這是相對比較粗的粒度,另外一個是Domain的Model這個是最細粒度的複用)

相關文章
相關標籤/搜索