DDD、UDD、TDD是什么?它們分別是領域驅動設計(DDD)、用例驅動開發(UDD)、測試驅動開發(TDD),它們是三種不同的軟件開發方法。具體的意思為領域驅動設計( domain driven design),用例驅動設計(use case driven design),測試/用戶驅動設計(test driven design)。
領域驅動設計(DDD)
DDD 將業務邏輯與軟件設計緊密結合,通過深入理解業務需求,并將領域模型作為軟件設計的中心,提升系統的兩個性:可維護性、擴展性。
DDD 關注領域模型的設計,通過與領域不同的專家合作,確保設計的模型準確反映業務需求,從而保證設計產品的滿足需要。
用例驅動開發(UDD)
UDD 以用例為核心來驅動開發,在編寫代碼之前,先要定義系統用例,根據測試用例進行黑盒演練。
通過提前的測試,確保系統的功能滿足預期的需求,通過模擬、演練,在需求穩定后,進行具體的單元測試。
測試驅動開發(TDD)
TDD比較適合需求穩定的項目,好多人把TDD 簡化成:“首先寫單元測試,然后寫實現程序,最后單元測試通過”。
TDD 以測試為核心驅動開發,先編寫測試用例,再編寫代碼,并進行測試,然后通過重構提高代碼質量。
通過TDD方法,可以提高代碼的可測試性、可維護性、可靠性。
三種方法的主要區別
視角不同:DDD 關注“業務領域和業務需求”的建模和設計;UDD 側重于“用例”的定義和測試;TDD 注重“測試驅動開發”的過程。。
重點不同:DDD 重點是領域“模型的設計實現;UDD 重點是用例來驅動整個開發過程;TDD重點是“測試驅動代碼開發”的實現。。
目標不同:DDD 要實現高度可維護和可擴展的軟件系統;UDD 是確保系統功能符合預期需求;TDD 是通過測試保證代碼的正確性和可靠性。