1.eric evans強調要聚焦於軟體的核心領域,以它來驅動開發。軟體能夠在市場上賣出去。是因為它封裝了別的軟體所滅有的一些核心領域知識,這就是核心競爭力,是利潤所在的地方,也是最值得下功夫的地方,再難也不能逃避。
2.有很多因素會是軟體開發複雜化,但最根本的原因是問題領域本身錯綜複雜。如果你要為一家人員複雜的企業提高自動化程度,那麼你開發的軟體將無法迴避這種複雜性,你所能做的只有控制這種複雜性。
3.領域模型的最大價值是它提供了一種通用語言,這種語言是將領域專家和技術人員聯絡在一起的紐帶。
4.在大多數軟體專案中,主要的焦點應該是領域和領域邏輯
5.複雜的領域設計應該基於模型
6.領域模型是經過嚴格組織並精心選擇的抽象知識
7.模型在領域驅動設計中的作用:
1)模型和設計的核心互相影響
2)模型是團隊所有成員鎖使用的交流語言的中樞
3)模型是濃縮的知識
8.有效建模的要素:
1)模型和實現的繫結:後期一直維護
2)獲得了一種基於模型的語言:業務方可以通過模型和技術方交流
3)開發乙個蘊含豐富知識的模型
4)提煉模型:一直重構模型
5)頭腦風暴和實驗:通過語言和草圖,再加上頭腦風暴活動。將業務知識消化轉化為有價值的模型。
9.將模型作為語言的中心。確保團隊在所有交流活動和**中堅持使用這種語言。在畫圖、寫東西特別是講話時也要使用這種語言。
11.當人們嘗試不同的想法時,可以對圖進行修改,草圖在某種程度上可以反映討論的變化,這是討論中真正重要的部分。
12.給複雜的應用程式劃分層次。在每一層內分別進行設計,使其具有內聚性並且只依賴於它的下層。
領域驅動設計 軟體核心複雜應對之道 模式設計
模式設計篇,主要針對ddd的幾個重要概念進行了定義 主要分為entity value object service module 引言 房東出租房壞了,起訴作者,其實是另外乙個同名同姓的人。隱喻 如何區分乙個物件 entity 需要有乙個標識定義,在生命週期內是連續的,而且不隨自身熟悉的變化而變化。...
破解軟體設計的複雜性
破解軟體設計的複雜性 在很多人眼裡,設計可能會顯得很神秘。其實設計和解題是一回事,只要把其中的規律弄清楚了,就能順應規律的指引自然而然的得出結論。只不過任何事情都是由前提條件的,設計的前提就是方 的指導加上廣泛的領域知識 不是指業務領域,對軟體設計來說就是軟體解決方案 生活中要做各種各樣的選擇,設計...
軟體固有的複雜性
brooks曾指出 愛因斯坦認為自然界必定存在著簡單的解釋,因為上帝不是反覆無常或隨心所欲的。軟體工程師沒有這樣的信仰來提供安慰。許多必須控制的複雜性是隨心所欲的複雜性。定義軟體的複雜性。軟體確實有較為簡單的軟體,系統簡單,沒有什麼複雜的變化,甚至不需要系統的學習,你就可以寫出乙個和他一樣的軟體或比...