領域驅動設計之我見 領域業務

2021-08-21 12:12:49 字數 819 閱讀 6594

談到領域驅動設計(ddd),人們很容易想到如下這張圖,那麼是不是你的軟體做了如下的分層設計就是領域驅動設計的了?顯然不是,以下分層只能說明的軟體做了分層架構,領域驅動設計的核心在領域模型,領域模型的核心在業務知識。如果能夠採用物件導向思維將業務抽象為恰當的模型,不管用什麼架構都稱得上領域驅動設計。

在大學期間學了很多gis的專業課程。其中《gis原理與應用》,原理講什麼?就是現實世界如何抽象為計算機資料。應用講什麼?就是如果應用抽象的計算機資料服務與現實世界。整書的目標就是講清楚gis領域如何建模,如果應用領域模型服務於生產。其中《gis空間分析理論與方法》,空間分析是什麼?就是gis領域模型如何解決問題,抽象為計算機語言,就是模型應該擁有什麼哪些方法並且如何實現。

相對而言計算機技術是相對不變的東西,而業務是千變萬化的,從研發人員自身角度出發,給自己創造價值的是編碼,而不是業務,特別是在網際網路行業,產品和研發分離,業務成了產品混飯吃的傢伙,而對於研發,寫的一手好**,才是硬本事。可能很少有軟體工程師從業務角度去思考計算機的價值,事實上計算機應該是作為乙個工具而為業務服務,是乙個將業務資訊化的工具,從而提高業務生產率。

所以若想領略領域驅動設計的精髓,首先要精通業務,在《領域驅動設計:軟體核心複雜性應對之道》一書中大量篇幅講到了領域專家一職。作為乙個初學者閱讀該書是也可能會覺得懊惱,這不是一本講軟體架構的書嗎?為什麼有那麼大的篇幅講解我們該如何去溝通,如何去獲取業務知識,如何去做業務建模。作為乙個有追求的軟體工程師,在不斷提公升軟體開發技能的同時,必須能夠有足夠的認識,精通業務知識才是我們做好軟體設計開發的首要條件。

領域驅動設計系列(一) 為何要領域驅動設計?

領域驅動設計最近貌似開始火起來了,越來越多的人開始認識到領域設計的重要性,從我做過的專案來看,似乎歐洲已經有很多的公司開始實施領域驅動設計了,我看領域驅動設計也有些時間了,但是網上不管是文章還是 都顯得太過 高大上 一談領域驅動設計,一大堆的概念一股腦的給你上上來,搞的有點暈頭轉向,而我想在一些中小...

領域驅動設計系列 二 領域模型

領域驅動設計裡有很多東西,我們可以應用在各種各樣的開發模式裡,所以接下來說的一些東西,我們可以部分使用。說道領域驅動的領域,大家肯定就要開始說bounded context,聚合,聚合根,容易讓大家搞糊塗。我覺得先拋開這些概念,後面再來說如何設計聚合,先簡單來說。過去,我們在多層設計裡定義了很多mo...

領域驅動設計之 領域建模

普通開發者在開發乙個專案時,可能考慮到的都是如何實現業務邏輯,同時提高程式效能,好一點的開發者會同時考慮到 的復用性和擴充套件性,沒錯,上面提到的幾點都是乙個優秀的技術開發需要必備的素質,但是如果想要真正的做出好的專案,是需要深入了解專案所屬領域的專業知識,從而設計出易於維護,能夠滿足組織後續需求,...