论模式在领域驱动设计中的重要性

最近在阿姆斯特丹举办的领域驱动设计欧洲大会上,Cyrille Martraire在其演讲中谈论到模式的重要性时表示,了解领域驱动设计(DDD)之外诸多现存的模式很有必要。

\\

Ward Cunningham因其第一个搭建了wiki网站而为大家熟知,但同时他也是第一批对模式进行描述的人。这第一批模式关注于信息完整性,Martraire认为这些早期的模式都是分析模式,它们用于描述如何从业务层面来更好地理解问题。例如例外值模式,这个模式让开发人员可以从业务的角度来编写代码,而不用考虑特殊情况,如处理非法值或零值。另一个有意思的模式是诊断查询模式,这个模式认为一个对象应该能够描述其成为当前状态的详细过程,诊断功能可以被用来取代输出日志或查看故障的过程。例如,一个账户对象内有一百欧元,可以被追溯为由一笔美元以及一笔英镑相加而转换来的。

\\

另一个模式的来源是四人组在90年代中期所著的《设计模式》。在这些模式中,Martraire找出了四个对模型化领域中概念及关系特别有用的模式:

\\
\
  • 组合模式,用于将对象组合成树形结构,可以让客户端以相同的处理方式来处理独立或组合的对象。 \\
  • 解析器模式,用于分析特定语言中的某个语句。 \\
  • 享元模式,使用共享来支持大量细粒度的对象。 \\
  • 策略模式,将算法逻辑从其调用中剥离。\
\\

Martraire在早期的职业生涯中也研究了Martin Fowler的《分析模式》一书。从这本书中他学到了一系列在零售银行、医疗、测量领域中使用到的新的模式。他认为通过学习各种模式并透彻了解其原理,就可以将它们应用到新的领域。然而,他强调,如果要获得进一步的理解,了解模式和其中理念发展的过程非常重要,而仅仅学习如今现存的模式是不够的。

\\

如果你还不了解这些模式,那就该思考你是否认真对待了设计过程,或过于关注那些最新技术。一个例子是事件溯源(event sourcing),这个模式常被默认使用,这让一些只需要简单的增删改查模型就可以满足的代码,无谓地变得复杂。他建议花更多时间在领域模型的设计过程上,如果发现设计存在问题,那就多进行改进。Martraire认为,如果你每次遇到问题,都倾向于创建新项目,你最终只会创造出你自己都无法理解的模型。最后回顾整个设计,你会发现它们都只是增删改查模型。为了训练你的技能,并了解更多复杂模型,可以研究成熟的遗留项目,在这些项目中你能找到深层次的领域模型。

\\

Martraire目前正在写《活文档(Living Documentation)》一书,其中介绍了如何利用注解来从代码中直接创建文档,用于描述领域驱动设计概念、用到的模式以及其他设计概念。

\\

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值