2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

别把领域驱动开发给用错了

  • 2015-04-28
  • 本文字数:727 字

    阅读完需:约 2 分钟

通常,有很多的应用声称是用领域驱动开发(DDD)构建出来的,并且有一个领域模型,但是这个模型实际上却仅仅包含业务实体,甚至于分离数据和逻辑的数据传输对象和服务都混合在了一起,其中也分不清业务和基础设施逻辑, Gabriel Schenker 分享了从事咨询和软件架构以来的个人经验。在具有消息处理的应用中,很少用业务领域中名称来命名消息,反而采用了以_update_ 或_modify_ 结尾的这种统称。

Schenker 目前是一位首席软件架构师,他说这一点儿都不夸张,他本人就常常发现早期的新应用就是这么构建出来的。Schenker 认为,这一现象的主要原因就是由于缺乏知识。

Schenker 强调说,如果采用 DDD 开展工作可以参考 Eric Evan 的 DDD 专著,但其中的所有模式的重要程度并不是安全相同的,特别是要注意这本书中后面部分的 DDD 基础,有些已经得到了 Evans 的充分肯定。与这些策略模式形成鲜明的对比的是,上半部分中的战术模式重点关注于实现的细节。

Schenker 建议说,当使用 DDD 开始一个新项目时,首先应和领域专家对业务领域达成一致的理解,把讨论中的术语抽取出来,大家共同商定创建一个通用的词汇表,在 DDD 术语中这叫做统一语言。让领域专家识别彼此间分离的区域,把复杂的领域予以分解,从而创建子领域或有边界的上下文,嘿嘿,这又是另一个DDD 术语。

Schenker 还告诫说,不要以数据模型开始创建一个以数据为中心的世界。他坚信,孤立的数据什么都不是,数据若想有意义就离不开逻辑,而且还要注意上下文的变化,所以,上下文和逻辑应该是 DDD 的主要关注点。专注于数据还有另一个风险,数据库最终会用于集成,实际上这从另一方面增加了上下文间的依赖。Stefan Tilkov 也于近期建议避免采用通用的数据模型。

查看英文原文: Domain-Driven Design the Wrong Way

2015-04-28 07:142968

评论

发布
暂无评论
发现更多内容

大数据培训学习的技术基础有哪些

小谷哥

如何通过Java将Word转换为PDF

Geek_249eec

Java PDF word

域内用户Hash获取方式总结

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞挖掘

挤破脑袋要进阿里、腾讯的java程序员,去B站不香吗?

钟奕礼

Java 程序员 java面试 java编程

15年磨一剑,亚马逊云科技数据产品掌门人 Swami 揭秘云原生数据战略的三大关键要素

亚马逊云科技 (Amazon Web Services)

亚马逊云科技

参加前端培训之后能做什么?

小谷哥

大数据培训程序员就业前景如何

小谷哥

react源码分析:组件的创建和更新

flyzz177

React

Industrial wifi6 Wireless AP/DR AP6018 S AIPQ6010 2T2R 2.4G&5G high power Radio AP

Cindy-wallys

IPQ6010 high power 2.4G&5G

cookie sessionStorage localStorage区别(详解)

达摩

缓存 Web Cookie LocalStorage sessionStorage

模块一作业

程序员小张

「架构实战营」

react源码分析:实现react时间分片

flyzz177

React

面试官:两个JVM的面试题就能证明,你连拿15K都不配

钟奕礼

Java 程序员 java面试 java编程

Wallys/DR9074E-Qualcomm Atheros QCN9074(QCN9024)/ 4x4 MU-MIMO Dual Band Wireless Module

Cindy-wallys

QCN9074 QCN9024

NineData,领先的多云数据管理平台

NineData

数据库 数据复制 数据备份 多云管理 SQL开发

网易互娱数据成本优化治理实践

网易数帆

数据中台 数据仓库 数据治理 12 月 PK 榜

前端培训学习后程序员有什么好的方向吗

小谷哥

react源码分析:深度理解React.Context

flyzz177

React

收到7个offer,用同一个技术套路了多位面试官

钟奕礼

Java java程序员 java面试 java编程

SAP MM 采购订单的Document Flow

SAP虾客

借助云的力量,重塑企业的现在和未来|re:Invent 2022 Adam Selipsky 主题演讲精华全收录

亚马逊云科技 (Amazon Web Services)

亚马逊云科技

世界杯“无障碍字幕直播间”火了,背后有啥火山语音的黑科技?

科技热闻

一步登顶还是步步维艰?Java资深架构师撰下的“阿里P7成神之路”

钟奕礼

Java 程序员 java面试 java编程

含泪复盘!项目踩坑回炉改造血泪史(附芯片PCB/原理图)

华秋PCB

PCB PCB设计

java程序员培训零基础怎么学

小谷哥

26个月89场Java岗面试,0至3年程序员的入职门槛到底是什么?

钟奕礼

Java 程序员 java面试 java编程

【iOS逆向与安全】iOS插件开发光速入门

小陈

SAP MM 使用两个STO实现免关税跨国公司间转储(III)

SAP虾客

Java 编程入门第一课:HelloWorld

千锋IT教育

MegPeak——让你更懂你的处理器

MegEngineBot

深度学习 开源 处理器 MegEngine MegPeak

乐观锁思想在JAVA中的实现——CAS

JAVA旭阳

Java Java并发

别把领域驱动开发给用错了_架构_Jan Stenberg_InfoQ精选文章