NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

评论

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

未来源码丨会写代码的AI开源了!C语言写得比Codex还要好,掌握12种编程语言丨CMU

MobTech袤博科技

c 开源 AI

2022 智能云边开源峰会|Kyligence 邀您“云”上相约

Kyligence

人工智能 云原生 边缘计算 开源峰会

java培训班学习后怎样才能找到工作

小谷哥

Postman如何做接口测试:导入 swagger 接口文档

和牛

测试 Postman

零基础前端培训学习有用吗

小谷哥

带你徒手完成基于MindSpore的CycleGAN实现

华为云开发者联盟

人工智能 mindspore 图像 生成网络

4KMILES加入艾盛集团,携手打造中国品牌在全球网络的增长机遇

Geek_2d6073

建设医共体,患者有“医”靠!

天翼云开发者社区

如何管理您的知识库?

Geek_da0866

EMAS Serverless搭建《私人云相册》小程序赢中秋好礼

移动研发平台EMAS

小程序 阿里云 Serverless 中秋节 云相册

4KMILES加入艾盛集团,加速中国品牌跨境业务的全域全效增长

Geek_2d6073

数字先锋 | 海南省数据产品超市:让买数据产品像逛超市一样方便

天翼云开发者社区

数字化

文档管理是企业进步必不可少的要素

Baklib

家电上云后,智能家居如何构建场景化应用

华为云开发者联盟

云计算 后端 IoT 智能家居

Web Service 接口怎么测试

和牛

Python 接口 测试 Web Service

5K字详解HttpClient 在vivo内销浏览器的高并发实践优化

了不起的程序猿

Java 后端 HTTP 并发 java程序员

深度学习公式推导(2):激活函数与偏置

老崔说架构

大数据软件开发哪里的培训比较好

小谷哥

我们还需要 SRE 吗?

Bytebase

DevOps SRE developer

Go-Excelize API源码阅读(十一)—— GetActiveSheetIndex()

Regan Yue

Go 开源 源码刨析 8月日更 8月月更

EMAS Serverless系列~4步教你快速搭建小程序

hum建应用专家

Serverless #EMAS

网页制作常见问题网页的必要性与方法

Baklib

架构实战营毕业总结

Geek_Q

十年数智求索路,餐饮SaaS头部企业客如云如何走向盈利

ToB行业头条

【Django | allauth】重写allauth重置密码方法

计算机魔术师

8月月更

前端培训中怎么提升开发技术水平?

小谷哥

INFINI 产品更新啦 20220815

极限实验室

elasticsearch infini gateway INFINI Labs 新版本/特性发布 INFINI Console

旅游吗?腾云驾雾的那种

天翼云开发者社区

SPI:Java的高可扩展利器

华为云开发者联盟

Java 开发

分布式系统架构设计

C++后台开发

数据库 分布式 后端开发 C/C++后台开发 C/C++开发

一不小心晋级“CCF国际AIOps挑战赛”决赛?

天翼云开发者社区

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