learn.lianglianglee.com/专栏/领域驱动设计实践(完)/index.html
2022-08-14 03:40:33 +08:00

279 lines
26 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<!-- saved from url=(0046)https://kaiiiz.github.io/hexo-theme-book-demo/ -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<link rel="icon" href="/static/favicon.png">
<title>note-submit</title>
<!-- Spectre.css framework -->
<link rel="stylesheet" href="/static/index.css">
<!-- theme css & js -->
<meta name="generator" content="Hexo 4.2.0">
</head>
<body>
<div class="book-container">
<div class="book-sidebar">
<div class="book-brand">
<a href="/">
<img src="/static/favicon.png">
<span>技术文章摘抄</span>
</a>
</div>
<div class="book-menu uncollapsible">
<ul class="uncollapsible">
<li><a href="/" class="current-tab">首页</a></li>
</ul>
<ul class="uncollapsible">
<li><a href="../">上一级</a></li>
</ul>
<ul class="uncollapsible">
<li>
<a href="/PDF">PDF</a>
</li>
<li>
<a href="/专栏">专栏</a>
</li>
<li>
<a href="/恋爱必修课">恋爱必修课</a>
</li>
<li>
<a href="/文章">文章</a>
</li>
<li>
<a href="/极客时间">极客时间</a>
</li>
</ul>
</div>
</div>
<div class="sidebar-toggle" onclick="sidebar_toggle()" onmouseover="add_inner()" onmouseleave="remove_inner()">
<div class="sidebar-toggle-inner"></div>
</div>
<script>
function add_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.add('show')
}
function remove_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.remove('show')
}
function sidebar_toggle() {
let sidebar_toggle = document.querySelector('.sidebar-toggle')
let sidebar = document.querySelector('.book-sidebar')
let content = document.querySelector('.off-canvas-content')
if (sidebar_toggle.classList.contains('extend')) { // show
sidebar_toggle.classList.remove('extend')
sidebar.classList.remove('hide')
content.classList.remove('extend')
} else { // hide
sidebar_toggle.classList.add('extend')
sidebar.classList.add('hide')
content.classList.add('extend')
}
}
function open_sidebar() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.add('show')
overlay.classList.add('show')
}
function hide_canvas() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.remove('show')
overlay.classList.remove('show')
}
</script>
<div class="off-canvas-content">
<div class="columns">
<div class="column col-12 col-lg-12">
<div class="book-navbar">
<!-- For Responsive Layout -->
<header class="navbar">
<section class="navbar-section">
<a onclick="open_sidebar()">
<i class="icon icon-menu"></i>
</a>
</section>
</header>
</div>
<div class="book-content"
style="max-width: 960px; margin: 0 auto; overflow-x: auto; overflow-y: hidden;">
<div class="book-post">
<p id="tip" align="center"></p>
<div><!--add content-->
<h1>领域驱动设计实践(完)</h1>
<ul>
<li><a href = '\专栏\领域驱动设计实践(完)\001 「战略篇」访谈 DDD 和微服务是什么关系?.md.html'>001 「战略篇」访谈 DDD 和微服务是什么关系?</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\002 「战略篇」开篇词:领域驱动设计,重焕青春的设计经典.md.html'>002 「战略篇」开篇词:领域驱动设计,重焕青春的设计经典</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\003 领域驱动设计概览.md.html'>003 领域驱动设计概览</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\004 深入分析软件的复杂度.md.html'>004 深入分析软件的复杂度</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\005 控制软件复杂度的原则.md.html'>005 控制软件复杂度的原则</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\006 领域驱动设计对软件复杂度的应对(上).md.html'>006 领域驱动设计对软件复杂度的应对(上)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\007 领域驱动设计对软件复杂度的应对(下).md.html'>007 领域驱动设计对软件复杂度的应对(下)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\008 软件开发团队的沟通与协作.md.html'>008 软件开发团队的沟通与协作</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\009 运用领域场景分析提炼领域知识(上).md.html'>009 运用领域场景分析提炼领域知识(上)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\010 运用领域场景分析提炼领域知识(下).md.html'>010 运用领域场景分析提炼领域知识(下)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\011 建立统一语言.md.html'>011 建立统一语言</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\012 理解限界上下文.md.html'>012 理解限界上下文</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\013 限界上下文的控制力(上).md.html'>013 限界上下文的控制力(上)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\014 限界上下文的控制力(下).md.html'>014 限界上下文的控制力(下)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\015 识别限界上下文(上).md.html'>015 识别限界上下文(上)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\016 识别限界上下文(下).md.html'>016 识别限界上下文(下)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\017 理解上下文映射.md.html'>017 理解上下文映射</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\018 上下文映射的团队协作模式.md.html'>018 上下文映射的团队协作模式</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\019 上下文映射的通信集成模式.md.html'>019 上下文映射的通信集成模式</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\020 辨别限界上下文的协作关系(上).md.html'>020 辨别限界上下文的协作关系(上)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\021 辨别限界上下文的协作关系(下).md.html'>021 辨别限界上下文的协作关系(下)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\022 认识分层架构.md.html'>022 认识分层架构</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\023 分层架构的演化.md.html'>023 分层架构的演化</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\024 领域驱动架构的演进.md.html'>024 领域驱动架构的演进</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\025 案例 层次的职责与协作关系(图文篇).md.html'>025 案例 层次的职责与协作关系(图文篇)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\026 限界上下文与架构.md.html'>026 限界上下文与架构</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\027 限界上下文对架构的影响.md.html'>027 限界上下文对架构的影响</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\028 领域驱动设计的代码模型.md.html'>028 领域驱动设计的代码模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\029 代码模型的架构决策.md.html'>029 代码模型的架构决策</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\030 实践 先启阶段的需求分析.md.html'>030 实践 先启阶段的需求分析</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\031 实践 先启阶段的领域场景分析(上).md.html'>031 实践 先启阶段的领域场景分析(上)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\032 实践 先启阶段的领域场景分析(下).md.html'>032 实践 先启阶段的领域场景分析(下)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\033 实践 识别限界上下文.md.html'>033 实践 识别限界上下文</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\034 实践 确定限界上下文的协作关系.md.html'>034 实践 确定限界上下文的协作关系</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\035 实践 EAS 的整体架构.md.html'>035 实践 EAS 的整体架构</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\036 「战术篇」访谈DDD 能帮开发团队提高设计水平吗?.md.html'>036 「战术篇」访谈DDD 能帮开发团队提高设计水平吗?</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\037 「战术篇」开篇词:领域驱动设计的不确定性.md.html'>037 「战术篇」开篇词:领域驱动设计的不确定性</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\038 什么是模型.md.html'>038 什么是模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\039 数据分析模型.md.html'>039 数据分析模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\040 数据设计模型.md.html'>040 数据设计模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\041 数据模型与对象模型.md.html'>041 数据模型与对象模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\042 数据实现模型.md.html'>042 数据实现模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\043 案例 培训管理系统.md.html'>043 案例 培训管理系统</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\044 服务资源模型.md.html'>044 服务资源模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\045 服务行为模型.md.html'>045 服务行为模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\046 服务设计模型.md.html'>046 服务设计模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\047 领域模型驱动设计.md.html'>047 领域模型驱动设计</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\048 领域实现模型.md.html'>048 领域实现模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\049 理解领域模型.md.html'>049 理解领域模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\050 领域模型与结构范式.md.html'>050 领域模型与结构范式</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\051 领域模型与对象范式(上).md.html'>051 领域模型与对象范式(上)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\052 领域模型与对象范式(中).md.html'>052 领域模型与对象范式(中)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\053 领域模型与对象范式(下).md.html'>053 领域模型与对象范式(下)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\054 领域模型与函数范式.md.html'>054 领域模型与函数范式</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\055 领域驱动分层架构与对象模型.md.html'>055 领域驱动分层架构与对象模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\056 统一语言与领域分析模型.md.html'>056 统一语言与领域分析模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\057 精炼领域分析模型.md.html'>057 精炼领域分析模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\058 彩色 UML 与彩色建模.md.html'>058 彩色 UML 与彩色建模</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\059 四色建模法.md.html'>059 四色建模法</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\060 案例 订单核心流程的四色建模.md.html'>060 案例 订单核心流程的四色建模</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\061 事件风暴与业务全景探索.md.html'>061 事件风暴与业务全景探索</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\062 事件风暴与领域分析建模.md.html'>062 事件风暴与领域分析建模</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\063 案例 订单核心流程的事件风暴.md.html'>063 案例 订单核心流程的事件风暴</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\064 表达领域设计模型.md.html'>064 表达领域设计模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\065 实体.md.html'>065 实体</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\066 值对象.md.html'>066 值对象</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\067 对象图与聚合.md.html'>067 对象图与聚合</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\068 聚合设计原则.md.html'>068 聚合设计原则</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\069 聚合之间的关系.md.html'>069 聚合之间的关系</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\070 聚合的设计过程.md.html'>070 聚合的设计过程</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\071 案例 培训领域模型的聚合设计.md.html'>071 案例 培训领域模型的聚合设计</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\072 领域模型对象的生命周期-工厂.md.html'>072 领域模型对象的生命周期-工厂</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\073 领域模型对象的生命周期-资源库.md.html'>073 领域模型对象的生命周期-资源库</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\074 领域服务.md.html'>074 领域服务</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\075 案例 领域设计模型的价值.md.html'>075 案例 领域设计模型的价值</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\076 应用服务.md.html'>076 应用服务</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\077 场景的设计驱动力.md.html'>077 场景的设计驱动力</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\078 案例 薪资管理系统的场景驱动设计.md.html'>078 案例 薪资管理系统的场景驱动设计</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\079 场景驱动设计与 DCI 模式.md.html'>079 场景驱动设计与 DCI 模式</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\080 领域事件.md.html'>080 领域事件</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\081 发布者—订阅者模式.md.html'>081 发布者—订阅者模式</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\082 事件溯源模式.md.html'>082 事件溯源模式</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\083 测试优先的领域实现建模.md.html'>083 测试优先的领域实现建模</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\084 深入理解简单设计.md.html'>084 深入理解简单设计</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\085 案例 薪资管理系统的测试驱动开发(上).md.html'>085 案例 薪资管理系统的测试驱动开发(上)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\086 案例 薪资管理系统的测试驱动开发(下).md.html'>086 案例 薪资管理系统的测试驱动开发(下)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\087 对象关系映射(上).md.html'>087 对象关系映射(上)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\088 对象关系映射(下).md.html'>088 对象关系映射(下)</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\089 领域模型与数据模型.md.html'>089 领域模型与数据模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\090 领域驱动设计对持久化的影响.md.html'>090 领域驱动设计对持久化的影响</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\091 领域驱动设计体系.md.html'>091 领域驱动设计体系</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\092 子领域与限界上下文.md.html'>092 子领域与限界上下文</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\093 限界上下文的边界与协作.md.html'>093 限界上下文的边界与协作</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\094 限界上下文之间的分布式通信.md.html'>094 限界上下文之间的分布式通信</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\095 命令查询职责分离.md.html'>095 命令查询职责分离</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\096 分布式柔性事务.md.html'>096 分布式柔性事务</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\097 设计概念的统一语言.md.html'>097 设计概念的统一语言</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\098 模型对象.md.html'>098 模型对象</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\099 领域驱动设计参考过程模型.md.html'>099 领域驱动设计参考过程模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\100 领域驱动设计的精髓.md.html'>100 领域驱动设计的精髓</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\101 实践 员工上下文的领域建模.md.html'>101 实践 员工上下文的领域建模</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\102 实践 考勤上下文的领域建模.md.html'>102 实践 考勤上下文的领域建模</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\103 实践 项目上下文的领域建模.md.html'>103 实践 项目上下文的领域建模</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\104 实践 培训上下文的业务需求.md.html'>104 实践 培训上下文的业务需求</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\105 实践 培训上下文的领域分析建模.md.html'>105 实践 培训上下文的领域分析建模</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\106 实践 培训上下文的领域设计建模.md.html'>106 实践 培训上下文的领域设计建模</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\107 实践 培训上下文的领域实现建模.md.html'>107 实践 培训上下文的领域实现建模</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\108 实践 EAS 系统的代码模型.md.html'>108 实践 EAS 系统的代码模型</a></li>
<li><a href = '\专栏\领域驱动设计实践(完)\109 后记:如何学习领域驱动设计.md.html'>109 后记:如何学习领域驱动设计</a></li>
</ul>
</div>
</div>
<div>
</div>
</div>
</div>
</div>
</div>
<a class="off-canvas-overlay" onclick="hide_canvas()"></a>
</div>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194"
integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw=="
data-cf-beacon='{"rayId":"70996b2f083d3d60","version":"2021.12.0","r":1,"token":"1f5d475227ce4f0089a7cff1ab17c0f5","si":100}'
crossorigin="anonymous"></script>
</body>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NPSEEVD756"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-NPSEEVD756');
var path = window.location.pathname
var cookie = getCookie("lastPath");
console.log(path)
if (path.replace("/", "") === "") {
if (cookie.replace("/", "") !== "") {
console.log(cookie)
document.getElementById("tip").innerHTML = "<a href='" + cookie + "'>跳转到上次进度</a>"
}
} else {
setCookie("lastPath", path)
}
function setCookie(cname, cvalue) {
var d = new Date();
d.setTime(d.getTime() + (180 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires + ";path = /";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim();
if (c.indexOf(name) === 0) return c.substring(name.length, c.length);
}
return "";
}
</script>
</html>