精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

論模式在領域驅動設計中的重要性

責任編輯:editor004

作者:Jan Stenberg

2017-03-06 11:33:20

摘自:INFOQ

最近在阿姆斯特丹舉辦的領域驅動設計歐洲大會上,Cyrille Martraire在其演講中談論到模式的重要性時表示,了解領域驅動設計(DDD)之外諸多現存的模式很有必要。

最近在阿姆斯特丹舉辦的領域驅動設計歐洲大會上,Cyrille Martraire在其演講中談論到模式的重要性時表示,了解領域驅動設計(DDD)之外諸多現存的模式很有必要。

Ward Cunningham因其第一個搭建了wiki網站而為大家熟知,但同時他也是第一批對模式進行描述的人。這第一批模式關注于信息完整性,Martraire認為這些早期的模式都是分析模式,它們用于描述如何從業務層面來更好地理解問題。例如例外值模式,這個模式讓開發人員可以從業務的角度來編寫代碼,而不用考慮特殊情況,如處理非法值或零值。另一個有意思的模式是診斷查詢模式,這個模式認為一個對象應該能夠描述其成為當前狀態的詳細過程,診斷功能可以被用來取代輸出日志或查看故障的過程。例如,一個賬戶對象內有一百歐元,可以被追溯為由一筆美元以及一筆英鎊相加而轉換來的。

另一個模式的來源是四人組在90年代中期所著的《設計模式》。在這些模式中,Martraire找出了四個對模型化領域中概念及關系特別有用的模式:

組合模式,用于將對象組合成樹形結構,可以讓客戶端以相同的處理方式來處理獨立或組合的對象。 解析器模式,用于分析特定語言中的某個語句。 享元模式,使用共享來支持大量細粒度的對象。 策略模式,將算法邏輯從其調用中剝離。

Martraire在早期的職業生涯中也研究了Martin Fowler的《分析模式》一書。從這本書中他學到了一系列在零售銀行、醫療、測量領域中使用到的新的模式。他認為通過學習各種模式并透徹了解其原理,就可以將它們應用到新的領域。然而,他強調,如果要獲得進一步的理解,了解模式和其中理念發展的過程非常重要,而僅僅學習如今現存的模式是不夠的。

如果你還不了解這些模式,那就該思考你是否認真對待了設計過程,或過于關注那些最新技術。一個例子是事件溯源(event sourcing),這個模式常被默認使用,這讓一些只需要簡單的增刪改查模型就可以滿足的代碼,無謂地變得復雜。他建議花更多時間在領域模型的設計過程上,如果發現設計存在問題,那就多進行改進。Martraire認為,如果你每次遇到問題,都傾向于創建新項目,你最終只會創造出你自己都無法理解的模型。最后回顧整個設計,你會發現它們都只是增刪改查模型。為了訓練你的技能,并了解更多復雜模型,可以研究成熟的遺留項目,在這些項目中你能找到深層次的領域模型。

Martraire目前正在寫《活文檔(Living Documentation)》一書,其中介紹了如何利用注解來從代碼中直接創建文檔,用于描述領域驅動設計概念、用到的模式以及其他設計概念。

查看英文原文:The Importance of Patterns in DDD

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 灌阳县| 黎川县| 儋州市| 綦江县| 开封县| 区。| 正蓝旗| 七台河市| 长丰县| 郑州市| 张家港市| 于都县| 宝应县| 前郭尔| 施秉县| 滁州市| 娱乐| 孝昌县| 迁安市| 田东县| 荃湾区| 静安区| 临朐县| 安西县| 肥西县| 六安市| 廉江市| 张家界市| 石棉县| 呈贡县| 嘉义县| 乌什县| 雅江县| 乐安县| 沭阳县| 堆龙德庆县| 霍州市| 济阳县| 渝北区| 杂多县| 玛纳斯县|