Thursday, March 25, 2021

[Domain-Driven Design]-Introduction

程式設計的重點並不在於使用哪個框架技術或優化幾個百分比,而是在於是否能

忠實解決業務的需求 

Eric Evans 發明了領域驅動設計 (Domain-Driven Design ,之後簡稱 DDD) ,提倡開發人員也需要與領域專家合作以獲取足夠的業務知識 (business knowledge),接著將領域知識與業務邏輯注入進程式碼模型之中,達成「程式即設計、設計即程式」的境界

運用了這套模式

一來程式碼功能一目瞭然

二來可以有效保護我們的業務邏輯不被竄改,甚至可以適應未來業務邏輯的變化與成長

 

DDD 最大的價值之一就是把將商業領域的知識映照到程式碼中,解放「程式歸程式,業務歸業務」的傳統思維,在過程中甚至可以打破商業團隊與工程團隊間的藩籬,甚至會讓人感覺到:

開發其實是一場學習的過程,程式碼只是過程的副產物。

DDD 是什麼

 介紹 DDD 是什麼之前,我們先定義領域 (Domain) 是什麼。廣泛來說, domain (knowledge) 是指「一塊知識的範圍」。實務上,就是指「你工作上所需的一切知識集合」,包含「問題」以及「解決方案」。

由此可見, DDD 是一種基於領域知識來解決複雜業務問題的軟體開發方法論。

它有以下三個重點:

跟領域專家 (domain expert) 密切合作來定義出 domain 的範圍及相關解決的方案。

切分領域出數個子領域,並專注在核心子領域。

透過一系列設計模式,將領域知識注入進程式模型 (model) 中。 

https://ithelp.ithome.com.tw/articles/10216792

http://teddy-chen-tw.blogspot.com/2019/06/5aggregate.html

No comments:

Post a Comment

n8n index

 【n8n免費本地端部署】Windows版|程式安裝x指令大補帖  【一鍵安裝 n8n】圖文教學,獲得無限額度自動化工具&限時免費升級企業版功能