2025年DDD领域驱动

DDD领域驱动Domain Driven Design DDD 2003 年出的书 Eric Evans 微服务 2013 年 八叉说 DDD 为什么说 领域驱动设计 已经过时了 评论 他站的基础是互联网企业 但是 DDD 建模更为重要的还是针对行业软件领域 DDD 解决的并不是他说的业务变更的问题

大家好,我是讯享网,很高兴认识大家。

Domain Driven Design

DDD,2003年出的书(Eric Evans)。微服务,2013年。

八叉说DDD:为什么说《领域驱动设计》已经过时了

评论:

他站的基础是互联网企业。但是DDD建模更为重要的还是针对行业软件领域。DDD解决的并不是他说的业务变更的问题DDD解决的是行业专家和软件厂商之间的认知鸿沟的问题,解决的是行业专家的领域语言如何一步一步转化成软件产品的问题。DDD模式不是万能模式,为了DDD而DDD肯定是错误的。但是说DDD是过时的,这种说法则更为偏激。

八叉说DDD:为什么说《领域驱动设计》已经过时了_哔哩哔哩_bilibili

DDD——马士兵

领域,子域,核心域,通用域,支撑域,实体,聚合,聚合根,仓库,工厂...

先脉络,后细节。

设计方面:学《坦克》《抽丝剥茧》


讯享网

业务快速变化,驱动软件系统越变越复杂。

DDD就是为了解决特别复杂而且变化快速的软件系统。(快速变化,复杂的系统

设计课,仁者见仁智者见智,不同的人不同的方案。互动,探讨。

贫血模式:只有属性,以及get和set,取值和赋值。

充血模式:将属性的变化放入其中。对属性的校验放入其中。做成一个包含业务的对象。

例如:实体Student,对于study,直接student.study(),是很爽的,比studentService.study()用起来舒服。

充血模式

代码案例:

public class VirtualWallet { private Long id; private Long createTime = System.currentTimeMillis();; private BigDecimal balance = BigDecimal.ZERO; private boolean isAllowedOverdraft = true; private BigDecimal overdraftAmount = BigDecimal.ZERO; private BigDecimal frozenAmount = BigDecimal.ZERO; public VirtualWallet(Long preAllocatedId) { this.id = preAllocatedId; } public void freeze(BigDecimal amount) { ... } public void unfreeze(BigDecimal amount) { ...} public void increaseOverdraftAmount(BigDecimal amount) { ... } public void decreaseOverdraftAmount(BigDecimal amount) { ... } public void closeOverdraft() { ... } public void openOverdraft() { ... } public BigDecimal balance() { return this.balance; } public BigDecimal getAvaliableBalance() { BigDecimal totalAvaliableBalance = this.balance.subtract(this.frozenAmount); if (isAllowedOverdraft) { totalAvaliableBalance += this.overdraftAmount; } return totalAvaliableBalance; } public void debit(BigDecimal amount) { BigDecimal totalAvaliableBalance = getAvaliableBalance(); if (totoalAvaliableBalance.compareTo(amount) < 0) { throw new InsufficientBalanceException(...); } this.balance.subtract(amount); } public void credit(BigDecimal amount) { if (amount.compareTo(BigDecimal.ZERO) < 0) { throw new InvalidAmountException(...); } this.balance.add(amount); } } 

讯享网

充血模型&DDD - 沉梦匠心 - 博客园

小讯
上一篇 2025-02-20 18:56
下一篇 2025-03-03 16:11

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/69567.html