硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

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

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

评论

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

Python OOP-1

若尘

面向对象 oop 面向对象编程 Python编程

一个码砖的码农,在InfoQ写一年博客,出书了?

小傅哥

Java 设计模式 小傅哥 架构设计 码农出书

阿里开发7年大牛:只需一篇文章吃透Android多线程技术,好文推荐

欢喜学安卓

android 程序员 面试 移动开发

谈谈 WebRTC 的 SDP Unified Plan

拍乐云Pano

WebRTC

一周信创舆情观察(4.12~4.18)

统小信uos

不要给自己留后路

小天同学

人生 个人感悟 成功 4月日更

Flutter Slidable 列表侧滑菜单 列表侧滑删除

早起的年轻人

flutter

悲观锁与乐观锁的实现(详情图解)

Java架构师迁哥

Ansible 命令行工具

耳东@Erdong

4月日更

NumPy之:数据类型

程序那些事

Python 数据分析 Numpy 程序那些事

rrxjava原理,手持4个大厂offer的我,吊打面试官系列!

欢喜学安卓

android 程序员 面试 移动开发

编曲新手可以用什么编曲软件?

奈奈的杂社

网络协议学习笔记Day1

穿过生命散发芬芳

网络协议 4月日更

10 亿数据量只需要 100MB 内存,Redis 的位存储为什么这么牛?

Java小咖秀

redis 原理 位运算 bit 高级特性

聪明人的训练(二十三)

Changing Lin

4月日更

泉州有了一个水务大脑,用AI守护“绿水青山”

百度大脑

AI

使用CrossOver安装第三方软件

懒得勤快

视频录制后有噪音怎么办?教你简答几步去除视频噪音!

奈奈的杂社

redis常见应用场景

Sakura

4月日更

开发知识 | 即时通讯是怎么做到的?

YonBuilder低代码开发平台

大前端 即时通讯 APP开发 小程序制作 开发技巧

中国脑科学的十年行旅

脑极体

流程引擎介绍

上海派拉基础研发

流程

GitHub开源:4行代码实现《黑客帝国》数字雨特效

不脱发的程序猿

GitHub 开源 程序人生 4月日更 黑客帝国

算法题目解析:从一道题目看动态规划

程序员架构进阶

算法 动态规划 28天写作 4月日更

你不一定全知道的四种Python装饰器实现详解

老猿Python

Python 编程语言 装饰器 程序开发

自从有了他,再也没有担心过环境部署~

MY

部署与维护

架构训练营——作业 2

架构实战营

LeetCode题解:641. 设计循环双端队列,使用数组,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

线程的故事:我的3位母亲成就了优秀的我!

王磊

Java 线程 多线程

架构实战营模块二作业

刁寿钧

架构实战营

万字精华:好好巩固你的Nginx知识体系

学Java关注我

Java 编程 架构 程序人生 计算机

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