DDD中簡單模型比複雜模型更危險

發表於2021-04-25

很多人將資料表之間的關係圖或者將類的靜態結構關係作為聚合模型的設計依據,這是片面的。這屬於一種簡單模型,複雜聚合模型是應該考慮這些結構中部件的互動關係的。mathiasverraes這篇文章主要談論這點:

所有模型都是錯誤的,但是簡單模型比複雜模型更錯誤。簡單的模型更具吸引力,更易於教授,傳播和應用。因此,它們可以更快地帶來價值,並且可以更快地造成傷害。“一切都應該儘可能簡單,但不要更簡單。” (愛因斯坦)是個很好的建議,但風險是我們忘記了最後一點。這不是在開玩笑,而是對減單主義的嚴肅警告。

 

發現還原論

還原論是一種邏輯方法,(Reductionism,相關詞語deductionism演繹法,這個單詞類似歸納法,它是將事物還原拆解成部件 ),它將問題空間視為部件的簡單組合,而忽略了隱藏但必不可少的複雜性(例如,部件之間的關​​系)。您最終得到的是看似簡單的模型,但實際上是有損模型。(banq注:很多人將資料表之間的關係圖或者將靜態結構關係作為聚合模型的設計依據,這是片面的。)

幸運的是,還原方法通常很容易使用。它以“ [複雜事物]只是[簡單事物]的組成”為開始。歸納成的模型具有“ 5個簡單步驟”或“ 3個祕密”,或諸如EASY之類的便捷助記詞首字母縮寫。

其他型別的簡單模型有:模型會接受隨著時間的變化而改變。他們接受例外作為改進模型的輸入。當異常不適合作為輸入時,這些異常不會被模型丟棄而是會被接受(模型沒有對輸入引數的業務規則校驗)。

 

如何深化簡單模型

一個簡單的還原論模型可以滿足90%的情況,那麼在10%的情況下,我們需要進行深化工作以找到更好,更豐富,更合適的模型。檢查自己處於標準情況還是例外情況?如果您身邊缺少某些情況,則發出紅旗警告,幫助您選擇正確的方法。

採取腳手架方法,這樣在一開始就能快速進步,將其用作尋找您自己的更好模型的先河,然後擺脫簡單的模型。這種辦法好處:首先沒有重新發明輪子,但最後發現了新穎的解決方案,以解決簡單模型作者無法預見的新穎問題。簡單模型並沒有明確地作為腳手架賣給我們,但是我們可以將其作為腳手架深入化。(腳手架的意思就是利用簡單模型對業務的深入理解,將簡單模型作為我們開始深入的工具,不只是簡單批評然後拋棄它)

 

通過這兩種辦法,可以將模型變得更加複雜(也就是說,它解決了問題空間中更多的固有複雜性)。複雜的模型雖然不那麼容易出錯,但卻難於培訓教學、傳播和應用!

 

相關文章