當前位置:
首頁 > 最新 > 捕獲-嵌入-防護:領域驅動設計的指導原則

捕獲-嵌入-防護:領域驅動設計的指導原則

在使用領域驅動模型(DDD)核心理念和實踐作為軟體設計和開發的指導方針時,可以概括為三個原則:捕獲、嵌入、防護。這是Steven A. Lowe在今年的DDD交流大會上演講時提出的。為了採取積極的行動,我們通過掌握剛好夠用的信息來捕獲領域模型。我們將模型嵌入到代碼和對話中。我們保護領域模型免受其他領域的侵蝕,尤其是技術領域。

在Thoughtworks首席顧問Lowe看來,DDD的出現是一種突破,因為它打破了對企業數據模型的錯誤沉迷,並代之以專註於合作領域的、獨立但重疊的模型。他強調,DDD改變了軟體開發的關注點和範圍,從技術視角轉向了以業務目標指導探索和解決方案。他認為,雖然人們對於DDD還存在一些誤解,但他指出,那些都是錯的:

DDD很難。不,它需要專註和自律,但編程也是如此。

DDD會帶來額外負擔。除非你認為沒有必要了解一個領域。

DDD僅適合複雜的領域。也許複雜的領域最需要,但這種理念肯定是普遍適用的。

捕獲的目的是可視化領域的思維模型,讓其具備交互性,從而使所有人都達成一致。在Lowe推薦的模型創建方法中,其中一種是把所有人都召集到一個房間里,讓他們專註於領域活動。這項技術被稱為事件風暴——一種由Alberto Brandolini創建的集體建模方法。Lowe發現,這種方法非常強大,可以最大化學習速度,最小化學習負擔。

在將領域模型嵌入到代碼時,兩個重要的部分是命名和組合,前者可以反映領域意圖,而後者可以反映領域行為。Lowe指出,如果你不能給一個東西起個好名字,則可能說明你對你要命名的東西不夠了解。由於文檔和圖表都會過期,所以代碼才是唯一可靠的事實來源。通過將領域模型嵌入到代碼,就可以保證模型永遠正確,而且對於開發人員隨時可見。在更高層面上,領域專家也可以讀懂代碼。

為了保護領域模型免受侵蝕,我們使用邊界將子領域隔離開。上下文的邊界是其介面,即進進出出的命令和事件。但是,邊界的強度也很重要,需要在介面中完成什麼驗證和轉換?一種實用的方法是使用模塊從物理上隔離子領域。這樣做的好處包括,代碼庫耦合度更低,更有彈性。Lowe指出,爭取在編碼的第一時間避免技術債務比後續消除它更簡單。

Lowe最後強調,捕獲-嵌入-防護是一個迭代過程,會隨著每個步驟重複多次,從較小的經過驗證的模型逐步構建出一個領域模型。他還指出隨時隨地使用領域驅動設計的重要性;如果你不是有意對領域建模,那麼你就不會無意中為其他東西建模。

查看英文原文:Capture - Embed - Protect, Guidelines for Domain-Driven Design

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 推酷 的精彩文章:

Candy Crush被製作成真人秀,手游與傳統媒體的結合沒擦出任何火花
惠普薄銳 ENVY 13 體驗:中端的定價,卻有「旗艦」的設計?
科大訊飛陶曉東:智能影像技術如何解決臨床問題?
面試系列之一:關於前端面試演算法的一些建議
MySQL性能優化、故障排查及最佳實踐秘籍,阿里雲資料庫專家玄慚的「武功」全記錄

TAG:推酷 |

您可能感興趣

指思智能滑鼠評測:安全防護,高效辦公—指尖的「私人密鑰」
權威分析機構將阿里雲定級為DDoS防護領域全球「第一陣營
「窗帘-1」防護系統
如何評價美國軍隊的SM-6導彈的防護力?世界先進防禦水平
IOT設備攻擊面分析與防護
步戰車格柵式裝甲用來防護RPG-7火箭彈打擊
絕密國防工程最後的保護傘:中國主動防護系統曝光
機器的守護天使-機器人防護衣
重視防護和進攻性能的卡梅爾新步戰車
防護高射程遠,動能防護技術優秀,美國導彈防禦系統傑出作品
新批次武直-10A入役,3大改進:加強防護與感知,未換髮動機
歐洲防務展斬獲訂單:NOVASKY低空入侵防護系統備受關注
IT和OT的協同防護已刻不容緩 3點入手
輻射防護安全及基礎知識
SPIDI|安全防護與機車外型的調和
軍備競賽:DDoS攻擊防護體系構建
每日動態:基礎科學研究/「狂暴」超聲速空地導彈/BAE最新車輛防護系統
浪涌(2)雷擊浪涌的防護
伺服器、VPS等安全防護教程
T3出行正式上線:V.D.R安全防護系統、車聯網能否護航出行生態?