簡體   English   中英

企業規模的 DDD?

[英]DDD on an enterprise scale?

尋找有關如何解決此問題的建議,並了解域驅動設計是否真的是這里的最佳模式。

我的客戶正在重新構建其幾近過時的工具和服務堆棧。 客戶是一個快速擴張的電子商戶。 它的核心產品是它的大型電子商務網站。 圍繞該網站,客戶擁有向其合作伙伴公開的各種數據源。 大量內部應用程序可幫助營銷、銷售、報告等。大量用戶支持和合作伙伴支持應用程序。 大量的各種數據同步、ETL 作業等......你明白了。

數據存儲和數據提供者也很豐富。 NOSQL 基於雲的超級可擴展存儲提供了公共網站上的大部分內容。 具有多個數據庫的 SQL 服務器為內部應用程序提供數據。 還有一些特殊的僅搜索服務器可提供可擴展的搜索功能,以及應用程序從各種 3rd 方供應商處使用的其他提要。 如果采用 DDD,計划是讓各種存儲庫對象組從特定於數據存儲的存儲庫基類繼承

客戶進行了一項練習,他們在“通用”級別上繪制了大多數業務實體:實體名稱和關系。 在“通用”級別之外,應用程序中各種具體對象的重用量相當可觀,並且根據應用程序的不同,實體的實現也會有所不同。

例如:電子商務網站上的訂單實體可能看起來像 X,而處理支持呼叫的應用程序可能看起來像 Y,此外,對於像 Z 那樣進行欺詐分析的人來說。

我正在尋找有關如何調整 DDD 或其他架構模式來處理這個巨大混亂的建議:制定一個可靠的企業戰略,以促進重用並在必要時允許邏輯分離。 在通常的(可擴展的、靈活的、適應性強的、可單元測試的、簡單的等)標准之上。

由於不同的數據存儲,DTO 的結構看起來從數據存儲到數據存儲有很大不同。 由於各種業務需求,各種應用程序需要某些實體的不同版本,並且由於公司正在快速擴張,未來高度不穩定,靈活性至關重要。

我想我最大的問題是找到一種方法將業務 model 分離到不同的域,並在大量共享或重用時將其保持在一起,同時能夠適應高水平的變化。

謝謝你的所有建議

PS 店鋪是微軟的店鋪。 VS2010/.NET/SQL/Azure

考慮 SOA + DDD

從表面上看,您應該同時考慮面向服務的架構 (SOA) 和領域驅動設計 (DDD)。 類似於 NServiceBus的東西。

Udi Dahan 在此處提供了有關 DDD + NServiceBus 的精彩視頻:

DDD 是關於隔離您的業務邏輯*

DDD 的核心是將您的領域邏輯與您的應用程序和框架隔離開來,以便您可以確保正確地對業務邏輯進行建模。 DDD 並不適用於每個項目,它絕對不適合維護 DDD 的成本高於您從中獲得的收益的小型企業應用程序。

在你的情況下

您描述了一個相當復雜的業務規則集,IMO 將從 DDD 中受益匪淺。 但是,我也會讓您考慮一種 SOA,它允許您使用通用消息傳遞系統將多個架構集成到 1 個企業級框架中。

使用 SOA

NServiceBus 是一個功能強大但輕量級的開源消息傳遞框架,用於設計分布式 .NET 企業系統。 NServiceBus 完全可插拔且易於使用,使程序員在開發健壯、可擴展和可維護的服務層和長期運行的業務流程方面處於領先地位。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM