InfoQ技术大会双节活动折上折,限时特惠,满10000-1000>> 了解详情
写点什么

从头开始实现领域驱动设计

2013 年 11 月 04 日

领域描述业务;它是驱动企业的概念和逻辑的集合。如果遵循领域驱动设计(DDD)这一本质,那么领域就是应用程序中最重要的组成部分。Andras Nemes,一个在.NET 平台上开发 Web 应用的瑞典开发人员,发表了 10 篇博客介绍如何基于领域驱动设计的原则在.NET 平台上构建 Web 服务,在这个系列的第一篇他就给出了这番解释。

在技术驱动的方式中,很容易出现技术选择影响领域的情况。而在 DDD 中不会,领域是应用程序中最重要的组成部分,技术是实现细节,而实现可能会变。并且事情应该就是这样,Andras 相信,领域是响应业务需求的独立实体,并且领域中的变化可能会影响技术的选择。

Andras 明确指出他的目的不是覆盖 DDD 的方方面面和所有细节,他这里指的是 Eric Evans 写的那本 DDD 书 。他只是想为.NET 方案构建一个骨架,提炼出 DDD 中最重要的思想,给基于 DDD 的项目提供一个基础。他希望即便刚刚接触 DDD 的开发人员也能从中受益,因此所有用到的关键概念他都给出了解释。

他的目标是一个包含如下这些层次的解决方案:

  • 基础设施层: 在基础设施服务中解决交叉问题。
  • 存储层: 数据访问及持久化技术层。
  • 领域层: 领域层有业务实体和业务逻辑,是应用程序的中心。
  • 应用服务层: 提供对消费者的响应动作
  • Web 层: 应用程序的消费者

作为他穿越 DDD 之旅的开始,Andras 解释了 DDD 中一些主要的战术性概念,比如实体、值对象和聚合,同时给出了一些使用指南。然后在他的系列博客中逐一介绍如何构建最终构成整个程序的各层。

Andras 最后总结到 DDD 已经帮他减轻了比较传统的层次化解决方案中常见的紧耦合性,领域层现在是程序的中心了。他还想办法把受技术影响最大的存储层隐藏了起来,放在了一个可以替换的抽象层后面。

查看英文原文: Implementing With Domain-Driven Design from the Ground Up

2013 年 11 月 04 日 10:032129
用户头像

发布了 45 篇内容, 共 22.9 次阅读, 收获喜欢 5 次。

关注

评论

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

week12 作业

zbest

面试官问:在读多写少的情况下,如何优化 MySQL 的数据查询方案

面试官问

MySQL 数据库 面试 主从同步 读写分离

《TestNG》源码学习笔记

吴大山

一次并发插入死锁带来的“教训”,我才清楚这些MySQL锁知识

互联网架构师小马

ZEGO全新语音聊天解决方案,4步搭建爆火的语音聊天室

ZEGO即构

在gradle中构建java项目

程序那些事

Java maven Gradle 程序那些事 构建工具

Kafka.02 - Topic 介绍

insight

kafka 2月春节不断更

RPC框架-dubbo:架构及源码分析-初篇

程序员架构进阶

微服务 dubbo 七日更 28天写作 2月春节不断更

区块链在医疗领域应用所要面临哪些挑战

CECBC区块链专委会

区块链 医疗

熟练HTML5+CSS3,每天复习一遍

魔王哪吒

面试 前端 28天写作 2月春节不断更

架构师week13作业

Geek_xq

架构师week13总结

Geek_xq

大厂面试:求解集装箱港口翻箱问题的最短路径

华为云开发者社区

算法 路径 模型

滴滴内部分享:如何提高代码的可读性,学习笔记

Java架构师迁哥

为什么 Python 的 f-string 可以连接字符串与数字?

Python猫

Python 开源 编程语言 后端 C语言

AI窥人(三):你想靠AI实现永生吗?

脑极体

产品经理问我:手动创建线程不香吗,为什么非要用线程池呢?

Java鱼仔

Java 线程池

go get下载包失败问题

happlyfox

Go Proxy 28天写作

新手如何靠区块链赚钱?

CECBC区块链专委会

区块链

实习记录:PB协议编写

是鱼头啊啊啊

我要看 SICP 了!

十元

Linux 多线程详解 —— 什么是线程

赖猫

Linux 线程 Linux内核

都在说云原生,它的技术图谱你真的了解吗?

浪潮云

云原生

追根溯源,有点意思,关于MySQL更新“丢失”问题

互联网架构师小马

Spring Boot(一):入门篇

海鸥云

spring Boot Starter

SICP 习题答案1.1 - 1.5

十元

程序员如何技术划水,Android项目开发如何设计整体架构?Android岗

欢喜学安卓

android 程序员 面试 移动开发

安卓软件开发!Android线程池基础入门和简单实践以及使用技巧,面试真题解析

欢喜学安卓

android 程序员 面试 移动开发

工作日志2-19

技术骨干

【得物技术】Keep-alive 原理及业务解决方案

得物技术

前端 标签 页面 得物技术 keepalive

区块链产品走向普及之不完全指南

CECBC区块链专委会

比特币 区块链

去哪儿网订单中心高并发实践

去哪儿网订单中心高并发实践

从头开始实现领域驱动设计-InfoQ