[Knowledge]軟體分層

軟體分層的基本介紹

基本三層式架構

三層式架構

  • 展示層(Presentation Layer)
  • 業務邏輯層 (Business Layer)
  • 資料層 (Data Layer)

優點

  • 結構簡單,容易理解和開發
  • 層與層間相依於介面,強化內聚,降低耦合
  • 資源重用性好
  • 關注點分離,每一層都可以獨立開發、測試
  • 提高系統安全性
  • 便於資料庫抽換

缺點

  • 調整時會比較麻煩、費時

服務型分層架構

服務型分層架構

  • 新增服務層 (Service Layer) : 負責把封閉的分層開放給外部使用
  • 比三層式架構多了點彈性

領域驅動設計架構

  • 新增領域層 (Domain Layer) : 專注理解使用者需求
  • 需要一位領域專家

優點

  • 貼近使用者
  • 一套流程處理複雜問題
  • 幫助我們有組織且可測試的程式碼
  • 好維護

缺點

  • 需花時間溝通理解
  • 學習曲線比較高
  • 不適合無複雜商業邏輯的情境
-------------The End-------------