函数响应式领域建模
正版实拍,内页干净完好无损当天发货
¥
20
2.5折
¥
79
九品
仅1件
作者李源
出版社电子工业出版社
ISBN9787121323928
出版时间2018-01
装帧平装
定价79元
货号285
上书时间2024-12-17
商品详情
- 品相描述:九品
- 商品描述
-
商品描述:
基本信息
书名:函数响应式领域建模
定价:79.00元
作者:李源
出版社:电子工业出版社
出版日期:2018-01-00
ISBN:9787121323928
字数:
页码:296
版次:
装帧:
开本:
商品标识:305
[chatu]
编辑推荐
内容提要
传统的分布式应用不会切入微服务、快速数据及传感器网络的响应式世界。为了捕获这些应用的动态联系及依赖,我们需要使用另外一种方式来进行领域建模。由纯函数构成的领域模型是以一种更加自然的方式来反映一个响应式系统内的处理流程,同时它也直接映射到了相应的技术和模式,比如Akka、CQRS 以及事件溯源。本书讲述了响应式系统中建立领域模型所需要的通用且可重用的技巧――首先介绍了函数式编程和响应式架构的相关概念,然后逐步地在领域建模中引入这些新的方法,同时本书提供了大量的案例,当在项目中应用这些概念时,可作为参考。
目录
1. 函数式领域建模:介绍 1
1.1 什么是领域模型 2
1.2 领域驱动设计介绍 4
1.2.1 边界上下文 4
1.2.2 领域模型元素 5
1.2.3 领域对象的生命周期 8
1.2.4 通用语言 13
1.3 函数化思想 14
1.3.1 哈,纯粹的乐趣 17
1.3.2 纯函数组合 21
1.4 管理副作用 26
1.5 纯模型元素的优点 28
1.6 响应式领域模型 31
1.6.1 响应式模型的3+1 视图 31
1.6.2 揭穿“我的模型不能失败”的神话 32
1.6.3 伸缩性与消息驱动 34
1.7 事件驱动编程 35
1.7.1 事件与命令 37
1.7.2 领域事件 38
1.8 函数式遇上响应式 40
1.9 总结 41
2 Scala 与函数式领域模型 42
2.1 为什么是Scala . 43
2.2 静态类型与富领域模型 45
2.3 领域行为的纯函数 47
2.3.1 回顾抽象的纯粹性 50
2.3.2 引用透明的其他好处 53
2.4 代数数据类型与不变性 53
2.4.1 基础:和类型与乘积类型 53
2.4.2 模型中的ADT 结构数据 56
2.4.3 ADT 与模式匹配 . 56
2.4.4 ADT 鼓励不变性 . 58
2.5 局部用函数,全局用OO 59
2.5.1 Scala 中的模块 60
2.6 用Scala 使模型具备响应性 64
2.6.1 管理作用 65
2.6.2 管理失败 65
2.6.3 管理延迟 67
2.7 总结 69
3 设计函数式领域模型 .70
3.1 API 设计的代数 . 71
3.1.1 为什么是代数方法 72
3.2 为领域服务定义代数 72
3.2.1 赋值抽象 73
3.2.2 组合抽象 74
3.2.3 类型的最终代数 76
3.2.4 代数法则 77
3.2.5 代数解释程序 79
3.3 领域模型生命周期中的模式 80
3.3.1 工厂――对象从何处来 . 82
3.3.2 智能构造器 82
3.3.3 通过更有表现力的类型进一步提升智能 84
3.3.4 用代数数据类型聚合 86
3.3.5 用透镜更新聚合功能 88
3.3.6 仓储与解耦的永恒艺术 94
3.3.7 高效地使用生命周期模式――结论 . 101
3.4 总结 102
4 领域模型的函数式模式 103
4.1 模式――代数、函数、类型的聚合 . 104
4.1.1 领域模型中的挖掘模式 106
4.1.2 用函数式模式使领域模型参数化 107
4.2 强类型函数式编程中计算的基本模式 112
4.2.1 函子――建立模式 . 112
4.2.2 加强版函子模式 114
4.2.3 单子作用――applicative 模式的变体 121
4.3 如何用模式对领域模型进行塑形 130
4.4 用代数、类型和模式演进API . 134
4.4.1 代数――第一稿 . 136
4.4.2 改进代数 137
4.4.3 最终组合――采用类型 . 138
4.5 用模式和类型增强领域的不变性 139
4.5.1 贷款处理模型 139
4.5.2 使非法状态不可表示 141
4.6 总结 142
5 领域模型的模块化 144
5.1 将领域模型模块化 145
5.2 模块化的领域模型――案例学习 . 146
5.2.1 模块的解剖 147
5.2.2 模块的构成 154
5.2.3 模块的物理组织 155
5.2.4 模块鼓励组合 156
5.2.5 领域模型中的模块化――结论 . 157
5.3 类型类模式――模块化的多态行为 . 157
5.4 边界上下文的聚合模块 160
5.4.1 模块与边界上下文 161
5.4.2 边界上下文间的通信 162
5.5 模块化的另一个模式――free monad . 163
5.5.1 账户存储 163
5.5.2 使它免费 165
5.5.3 账户存储――free monad 167
5.5.4 free monad 解释程序 . 169
5.5.5 free monad――重点回顾 172
5.6 总结 173
6 响应式模型 174
6.1 响应式领域模型 175
6.2 使用future 的非阻塞API 设计 177
6.2.1 异步作为堆叠作用 178
6.2.2 基于monad 转换器的实现 . 181
6.2.3 用并行存取降低延迟――一种响应式模式 183
6.2.4 使用scalaz.concurrent.Task 作为响应式构造 187
6.3 明确的异步消息传递 189
6.4 流模式 191
6.4.1 一个案例 191
6.4.2 领域管道图 195
6.4.3 后端压力处理 197
6.5 actor 模型 . 198
6.5.1 领域模型与actor . 199
6.6 总结 203
7 响应式流建模 . 205
7.1 响应式流模型 206
7.2 何时使用流模型 207
7.3 领域用例 208
7.4 基于流的领域交互 208
7.5 实现:前台 210
7.6 实现:后台 211
7.7 流模型的主要结论 214
7.8 使模型具有弹性 215
7.8.1 使用Akka Streams 监管 216
7.8.2 冗余集群 217
7.8.3 数据的持久化 217
7.9 基于流的领域模型与响应式原则 219
7.10 总结 220
8 响应式持久化与事件溯源 221
8.1 领域模型的持久化 222
8.2 关注点分离 224
8.2.1 持久化的读/ 写模型 . 225
8.2.2 命令查询责任分离 226
8.3 事件溯源 . 228
8.3.1 事件溯源领域模型中的命令和事件 229
8.3.2 实现CQRS 和事件溯源 231
8.4 实现事件溯源的领域模型(函数式) 232
8.4.1 作为头等实体的事件 233
8.4.2 命令是事件上的free monad 235
8.4
— 没有更多了 —
以下为对购买帮助不大的评价