程式設計的重點並不在於使用哪個框架技術或優化幾個百分比,而是在於是否能
忠實解決業務的需求
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