問題驅動設計與領域驅動設計的區別 - abdullin
著眼於真正的問題,解決方案才會有更大的生存和成長機會。我應該做的:研究現實世界,傾聽人們的問題,並挖掘它們的背後。然後,在編寫太多程式碼行之前找到驗證我的解決方案的方法。
如果過多地關注工程,則可能忽視更多地專注於識別問題和迭代地制定解決方案。
編碼應該在解決方案設計之後開始。設計應該在與人交談並確定問題之後開始。所有三個都應該迭代。
圍繞“產品設計”和“客戶開發”有一個巨大的研究領域。
領域驅動設計
領域驅動設計 (DDD) 適用於已存在了的領域。顧名思義,它由領域驅動。我們與利益相關者和領域專家合作以達成共識、闡明地圖、管理複雜性並提供解決方案。
用馬可的話來說:
領域驅動設計社群的主要焦點是試驗、開發和採用方法來了解客戶的目的空間和所有利益相關者的需求。
對映地圖可能不確定,但業務已經存在,並且是可行的。探索是發生在這些已經存在的業務邊界內,並且是向內進行的。
從這個角度來看,問題空間就被定義了。DDD 配備了完善的工具,可以在這種環境中解決複雜性並交付業務價值。
DDD 有助於構建可能的最佳解決方案。
問題驅動設計
來自比利時 DDD 社群的Tom Janssens表達了這一點:
在 DDD 中,我們傾向於假設客戶共享的問題是指定好了的。但是當你經營一家企業時,事實證明這是不正確的......
想象一下,您需要寫一本新書、打造一款可持續的產品或協助一家公司探索新的商機。領域不確定。有無數的選項可供選擇。有些會是可行的,有些則不會。這是一片混亂,充滿了可能性。
問題驅動設計的目的是冒險進入這個全新的“有龍”的領域並建立一個新的可行領域。
“生存能力”可以意味著任何事情:養家餬口、建立聲譽、做社會公益、創造大企業。這些是限制條件。
鑑於這些限制,我們與潛在客戶交談,發現他們的問題,並深入研究這些發現。
我們確定並挑選可以以可行方式解決的問題。然後我們形成一個解決方案並找到最短路徑來驗證它。
我們越早發現我們的方法中的缺陷 - 越好。這意味著,我們可以從現實的憤怒中節省時間和金錢,並開始研究新的問題解決方案。
在早期階段,我們可以採用精益創業公司的方法、迭代開發、資料驅動的產品設計和進行客戶訪談的藝術。
如果一切順利——我們可能剛剛在一個全新的領域中雕刻了一個現實。領域驅動設計可以幫助它進一步發展。
Tom Janssens 的Virtual Sales Lab就是一個很好的例子。該產品是關於構建利用 3D 技術的銷售和營銷工具。域本身在十年前並不真正存在。它現在正在增長。在接下來的十年中,3D 銷售可能會發展成為一個眾所周知的成熟領域。
為什麼會有這樣的樂觀?當前的 3D 解決方案是不是有點難看?年輕一代更喜歡通過 3D 感知世界。Fortnight 的大型派對,各個年齡段的孩子都在玩 Minecraft,技術進步是問題空間內的明顯跡象,表明了不可避免性。解決方案沒有定義,但問題空間內的深層電流會導致某些事情。
相關文章
- 領域驅動設計示例
- MasaFramework -- 領域驅動設計Framework
- 理解領域驅動設計
- DDD領域驅動設計:領域事件事件
- 領域驅動設計整合與架構架構
- 領域驅動設計的DDD與ddd - nick
- 實現領域驅動設計
- 領域驅動設計核心概念
- 領域驅動設計簡介
- 再談領域驅動設計
- DDD領域驅動設計pdf
- JavaScript中的領域驅動設計JavaScript
- 領域驅動設計(DDD)實踐之路(二):事件驅動與CQRS事件
- 領域驅動設計,中臺與微服務微服務
- 聊聊領域驅動設計與編碼思想
- 前端開發-領域驅動設計前端
- DDD-領域驅動設計示例
- 淺談DDD(領域驅動設計)
- 淺談 DDD 領域驅動設計
- 何時使用領域驅動設計
- 微服務領域驅動設計 - semaphoreci微服務
- DDD領域驅動設計:倉儲
- 整潔的領域驅動設計 - George
- 10個領域驅動設計應避免的誤區
- 領域驅動設計和Clean架構之間的區別? - stackexchange架構
- 領域驅動設計戰術模式--領域事件模式事件
- 戲說領域驅動設計(廿五)——領域事件事件
- 戲說領域驅動設計(五)——子域
- 戲說領域驅動設計(廿七)——Saga設計模型模型
- 最常見領域驅動設計錯誤
- 領域驅動設計(DDD)入門&概要
- DDD-領域驅動設計簡談
- 戲說領域驅動設計(三)——困境
- dayatang/dddlib:DDD領域驅動設計庫
- 戲說領域驅動設計(二)——修身
- 戲說領域驅動設計(廿二)——聚合
- 領域驅動設計 (DDD) 簡介 - jannikwempe
- “親切照料”下的領域驅動設計