写点什么

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

  • 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:142805

评论

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

阿里云消息队列 2021 新功能新特性重要里程碑

阿里巴巴云原生

kafka 阿里云 RocketMQ 云原生 消息队列

Android技术分享| Android WebRTC 对 AudioRecord 的使用

anyRTC开发者

android 音视频 WebRTC 移动开发 AudioRecord

如何高效上架HarmonyOS原子化服务?这个平台帮你搞定!

HarmonyOS开发者

HarmonyOS

复旦大学陈平博士:网络攻击猖獗,如何应对数据安全与内生安全挑战?

星环科技

网络安全

白话大数据 | 元宇宙来了,但是你了解元数据吗?

星环科技

元数据

盘点 2022 云原生实战峰会重磅发布

阿里巴巴云原生

阿里云 开源 容器 云原生

人员流动大,简历管理纷杂怎么办?用低代码可以解决嘛?

优秀

低代码

阿里云视频云vPaaS低代码音视频工厂:极速智造,万象空间

阿里云CloudImagine

音视频 低代码 视频云 视频开发

为企业选择合适的CRM系统的技巧

低代码小观

CRM 客户关系管理 CRM系统 客户关系管理系统 企业管理软件

有关 TiDB 升级的二三事——教你如何快乐升级

PingCAP

【分布式技术专题】「Zookeeper系列」为大家介绍一下Zookeeper的"开发伴侣"—Curator-Framework(基础篇)

洛神灬殇

zookeeper curator 1月月更 CuratorFramework

极客星球 | MobPush之FCM离线消息解密

MobTech袤博科技

FCM 离线消息

【堡垒机】2022年企业买堡垒机就选行云管家!五大优点看这里!

行云管家

等保 堡垒机 过等保 等保2.0

MASA Framework - 整体设计思路

MASA技术团队

C# .net 框架 Framework dapr

Form 表单在数栈的应用(上): 校验篇

袋鼠云数栈

大数据 前端

热门链游GameFi项目Radio Caca 联手Hoo虎符撒空投

区块链前沿News

Hoo 虎符交易所 链游 RACA

大数据开发之Spark SQL 的 Catalyst介绍

@零度

大数据 spark SQL

Apache 基金会年度报告 | ShardingSphere 代码提交量位列前十

SphereEx

数据库 开源 基金会 ShardingSphere SphereEx

澳鹏中国智能可配置工作流(Workflow 2.0)全新升级

澳鹏Appen

人工智能 工作流 workflow 数据标注 训练数据

网易云信又双叒受到Gartner关注,看看这次的报告说了什么?

网易云信

Gartner 通信平台 CPaaS

【有奖评测】无影云电脑评测征集令,晒出评测赢万元豪礼

阿里云弹性计算

阿里云 无影云电脑 征文活动

rosdep update遇到ERROR: error loading sources list: The read operation timed out问题

Ayosh

ROS

【分布式技术专题】「Zookeeper系列」为大家介绍一下 Zookeeper 的"开发伴侣"—Curator-Framework(组件篇)

洛神灬殇

zookeeper ZooKeeper原理 1月月更 Curator-Framework

数据库审计设备选择哪家好?谁能告知?

行云管家

数据库 服务器 数据库审计

深度解读企业云上办公利器「无影云电脑」

阿里云弹性计算

阿里云 无影云电脑

【数据库】查询优化之子连接优化

恒生LIGHT云社区

数据库 sql SQL子查询 子查询

恒源云(GPUSHARE)_CV领域有关【直方图】的论文小记

恒源云

深度学习 CV

main函数你到底知道多少

恒生LIGHT云社区

后端 开发 Java’ main方法

12月发布两大特别专区!一图了解龙蜥社区大事件

OpenAnolis小助手

开源 操作系统 运营

java开发之SpringBoot实现自动执行代码

@零度

JAVA开发 springboot

星环科技AIoT平台让工业制造设备更智能、更耐用

星环科技

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