低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

在基于 Entity Framework 的核心业务应用中使用 DDD

2013 年 12 月 05 日

领域驱动开发(DDD)所关注的是领域,而不是持久化”, Julie Lerman 最近在瑞典的Øredev 开发者大会上这样说道

Julie 从 2003 年以来一直是微软最有价值专家,.NET 平台顾问,曾关注数据库编程25 年,然后使用 Entity Framework (EF),但现在受到了关注领域的 DDD 的启发。

她的经验是,很多使用 DDD 的人不关心持久化,数据库是开发最后才会考虑的事。但长远来看,我们仍然需要将数据存入数据库,并且尽管 Julie 关注的是领域,但她仍然希望尽早确定应该什么时候引入持久化。

对于 Julie 来说,DDD 中最重要的概念是边界上下文,它让我们以一种更加结构化的方式在子系统中思考问题,而不是在同一时间考虑应用程序的全部内容,如实体、行为等。在处理顾客服务的时候,可以不用关心与其他子系统(如市场)的交互。我们可能会需要某个标识,或很少的来自其他上下文的信息,但这些大部分都属于一个上下文领域的边界。这意味着我们在考虑持久化的时候,可以只关注一部分实体。

在处理不同的实体(如客户)时,它在不同的上下文中重新定义客户实体,尽管它们都持久化在相同的Customer 表中。她发现一个潜在的扩展是使用不同的表甚至数据库,将这些上下文彻底分离开来。

对Julie 来说,值对象一直是一个混乱的概念。它从DDD 专家那里听到过5 种不同的解释,它们全都正确,并且丰富了她的视野。现在,Julie 认为值对象是没有标识的不可变对象,

一般情况下,Julie 也将领域模型作为数据模型使用,但她发现在一些非常复杂的领域中(如遗留数据库),需要分离的持久化模型。

在今年早些时候,Julie 撰写了三篇文章,讲述了她从数据驱动开发转移到DDD 时所学到的东西。

原文英文链接: http://www.infoq.com/news/2013/11/leveraging-ddd-ef

2013 年 12 月 05 日 08:071800
用户头像

发布了 59 篇内容, 共 18.7 次阅读, 收获喜欢 3 次。

关注

评论

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

整天都在讨论使用SpringBoot,可你居然连缓存都不清楚

小Q

Java 缓存 学习 面试 springboot

《华为数据之道》读书笔记:第 10 章 未来已来:数据成为企业核心竞争力

方志

数字化转型 数据治理

修炼码德系列:简化条件表达式

Silently9527

Java 经验分享 代码重构 代码规范

智能新时代 安全新未来 首届国网北京电力人工智能数据竞赛正式启动

极客播报

Linux常用命令速查

jiangling500

linux命令

漫画:什么是 “智能供应链” ?

京东科技开发者

云计算 供应链 智能供应链

高速公路二维码定位报警系统搭建解决方案

t13823115967

高速公路二维码定位报警 智慧公安

🤳你要悄悄变优秀,然后惊艳所有人

蚂蚁集团移动开发平台 mPaaS

mPaaS 智能投放 界面改版 产品资讯

《穿越数据的迷宫》笔记:中文版序二

方志

数据治理

Gradle doesn't run because it can't find tools.jar in JRE

mengxn

kotlin Gradle

区块链落地开发,区块链版权应用搭建

t13823115967

区块链+ 区块链落地开发 区块链版权应用搭建

为什么边缘计算将终止云计算?

VoltDB

数据库 云计算 数据分析 边缘计算

算力 | 手写红黑树

高翔龙

数据结构 算法 二叉树 红黑树

EXCEL、图片处理常用技巧

jiangling500

Excel 图片处理

Appium之测试微信小程序

清菡

App

深度剖析github star数15.1k的开源项目redux-thunk

徐小夕

Java GitHub 前端工程 React 前端进阶

公安大数据综合管理平台搭建,重点人员管控系统开发

WX13823153201

小心踩雷,一次Java内存泄漏排查实战

AI乔治

Java 架构 JVM 内存

线程池 ForkJoinPool 简介

Java老k

Java 线程池 forkjoinpool 工作窃取

淦!终于有人把Java 8和Spring 5完美合体了,业界堪称“神迹”

Java架构追梦

Java spring 架构 面试 springboot

双非本硕四面百度竟意外成功?看完我的面试经历 网友都称:过于优秀

比伯

Java 编程 架构 面试 计算机

AnyRTC --- Flutter 实现视频通话

anyRTC开发者

flutter 音视频 WebRTC 跨平台 sdk

有奖讨论|作为程序员,女朋友是怎么吐槽你的?

Simon郎

女朋友 话题讨论

360OS张焰:AI视觉在教育中的应用

ZEGO即构

冰河教你一次性成功安装K8S集群(基于一主两从模式)

冰河

Docker 云原生 k8s

Spring 源码学习 04:初始化容器与 DefaultListableBeanFactory

程序员小航

spring 源码 源码阅读

数据结构与算法系列之跳表(GO)

书旅

go 数据结构 算法

记一次GC频繁且间隔较长解决实战总结

AI乔治

Java 架构 JVM GC

解锁高速 IT 团队利器:Jira Service Management

Atlassian

DevOps Atlassian Jira ITSM ITIL

《穿越数据的迷宫》笔记:第1章 数据管理的重要性

方志

数据治理

Forsage智能合约系统APP开发|Forsage智能合约软件开发(现成)

开發I852946OIIO

系统开发 现成系统

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

在基于Entity Framework的核心业务应用中使用DDD-InfoQ