微服务下的领域驱动设计
¥
75.52
5.9折
¥
129
九五品
仅1件
作者孙连山
出版社北京航空航天大学出版社
ISBN9787512442764
出版时间2024-01
版次1
装帧平装
开本16开
纸张胶版纸
定价129元
上书时间2024-12-09
商品详情
- 品相描述:九五品
- 商品描述
-
基本信息
书名:微服务下的领域驱动设计
定价:129.00元
作者:孙连山
出版社:北京航空航天大学出版社
出版日期:2024-01-01
ISBN:9787512442764
字数:
页码:
版次:
装帧:平装
开本:16开
商品重量:
编辑推荐
本书通过生动的案例和实用的指南,向读者展示了如何在实践中进行DDD落地以创造出灵活的、可维护的且具有良好可扩展性的软件系统。无论您是刚入门的研发人员还是经验丰富的软件工程师,这本书都可为您提供相应的指导,助您成为领域驱动设计领域中驾轻就熟的技术专家。——亚信科技电信事业部总工程师兼OSS解决方案部总经理 陈友行DDD不仅是令人着迷的学问,也是解决复杂业务问题的利器。本书作者通过简约但不简单的案例向读者展示了如何将这一抽象性十足的方法理论应用于实践当中,给大家以豁然开朗之感。——中电福富信息科技有限公司副总经理 林启铵本书作者以深厚的专业知识和丰富的实践经验为根本,将复杂的技术概念转化为易于理解的思想和语言,巧妙地将抽象的概念运用于具体的案例之中,能够让读者快速领悟DDD的精华。书中的设计技巧和建议,不仅能够帮助您快速掌握理论知识,还能带领您解决实践中的技术挑战,加速技能的提升和自身的成长。——广东亿迅科技有限公司总工程师 廖小文
内容提要
本书以实战理念为主旨, 对领域驱动设计的核心内容进行了全面解读。 书籍主要由两部分内容构成: 战略与战术。 部分以子域和限界为核心, 并通过案例的形式介绍了如何在现实中将其进行实践的知识; 第二部分则围绕应用架构、 聚合、 实体、 值对象、 领域服务等概念展开讲解, 重点描述了它们在应用中所充当的角色以及使用限制。 除此之外, 作者也根据自身的经验对一些常见的设计理论或设计模式进行了概括和总结, 如面向对象、 工作单元、Saga 分布式事务等。 尽管书中案例使用了Java 语言进行表达, 但并不会影响到读者的阅读体验。本书的受众群体为软件工程师、 系统架构师、 需求分析师或计算机相关专业的在校师生等。
目录
部分 沙场秋点兵———战略布局 章 柳暗花明———困境与修身1 .1 困 境 1 .1 .1 DDD 的野望与尴尬1 .1 .2 何以解忧 1 .2 山重水复 1 .2.1 软件中的熵增 1 .2.2 抑制熵增速率1 .3 修 行1 .3 .1 管理者的修行1 .3 .2 软件工程师的修行总 结 第2 章 比翼连枝———领域驱动设计与微服务2.1 软件革命———微服务的兴起2.2 更进一步———DDD 的百尺竿头 2.3 差 异2.4 对微服务的反思 2.5 DDD 与微服务的秦晋之好2.5 .1 业务中台的概念2.5 .2 助力服务划分总 结 第3 章 战略划小———领域与子域 3 .1 胸存丘壑3 .2 领域与子域3 .3 子域特性3 .3 .1 分割领域3 .3 .2 可变的3 .3 .3 有 界1微服务下的领域驱动设计3 .3 .4 可决策资源投入3 .3 .5 业务高度内聚3 .4 解读子域3 .4.1 业务灵魂———核心域 3 .4.2 业务基石———支撑域3 .4.3 复用之道———通用域3 .5 识别子域的手段与策略3 .5 .1 子域设计步———业务识别3 .5 .2 子域设计第二步———子域打标3 .5 .3 子域设计第三步———子域精化3 .5 .4 子域划分策略总结总 结第4 章 确定疆域———限界上下文(Bounded Context)4.1 通用语言 4.1 .1 通用语言的作用4.1 .2 通用语言的特性4.1 .3 通用语言的使用方式4.2 限界上下文的内涵 24.2.1 限 界4.2.2 上下文4.2.3 限界上下文与子域4.3 限界上下文的特性4.3 .1 物理划分4.3 .2 根据子域推导4.3 .3 限定边界4.3 .4 承上启下4.3 .5 具备技术性4.4 限界上下文中的元素4.4.1 领域模型4.4.2 用例控制能力4.4.3 数据存取能力4.4.4 表现能力4.4.5 数据转换4.4.6 部署能力4.4.7 交互支撑能力4.5 限界上下文的来源4.5 .1 基于子域4.5 .2 基于非功能性需求4.6 案 例4.7 限界上下文的粒度与规模4.8 限界上下文间的通信4.8.1 限界上下文的集成方式4.8.2 限界上下文映射案例4.9 再谈隔离4.10 限界上下文中的业务模型4.10.1 软件建模 4.10.2 限界上下文与模型的集成总 结第二部分 知行合一———战术实践第5 章 中流砥柱———系统架构(Architecture)5 .1 对象与服务 5 .1 .1 对 象5 .1 .2 服 务 5 .2 分层架构 5 .2.1 经典三层架构 5 .2.2 DDD 四层架构 5 .3 洋葱架构与六边形架构 5 .3 .1 认识洋葱架构 5 .3 .2 认识六边形架构 5 .4 命令查询责任分离(CQRS) 5 .4.1 认识 CQRS 5 .4.2 CQRS 的实现 5 .5 事件驱动架构(EDA) 5 .5 .1 认识 EDA 5 .5 .2 EDA 案例 5 .5 .3 EDA 的特色 5 .6 事件溯源(Event Sourcing) 5 .7 事务与数据一致性5 .8 代码结构5 .8.1 组织项目 5 .8.2 服务中的代码模型 3微服务下的领域驱动设计5 .8.3 实 践 总 结第6 章 举世无双———实体(Entity) 6 .1 认识实体6 .1 .1 贫血模型与充血模型 6 .1 .2 实体的标识符 6 .1 .3 实体的比较 6 .1 .4 实体的特征 6 .2 实体的行为6 .2.1 责任主体 6 .2.2 知识掌握程度 6 .2.3 是否可复用 6 .2.4 是否需要多对象协作 6 .2.5 基于高内聚、 低耦合原则6 .3 实体的构造函数 6 .3 .1 保障对象完整与合法6 .3 .2 优先使用工厂6 .3 .3 包含定制构造函数 6 .4 实体设计实践 6 .4.1 设计约束6 .4.2 实体存取 6 .5 额外的礼物———对象间的关系 6 .5 .1 类图的作用6 .5 .2 类间的关系 6 .5 .3 类图的粒度 总 结第7 章 股肱之臣———值对象(Value Object) 7.1 认识值对象7.1 .1 值对象的含义及作用7.1 .2 值对象示例 7.1 .3 值对象的作用范围 7.2 值对象的特征7.2.1 无标识符 7.2.2 修饰某物7.2.3 构成某物7.2.4 概念整体7.2.5 不可变 7.2.6 无副作用 7.3 值对象的构造 7.4 值对象的存取 7.4.1 附加到实体表 7.4.2 单列存储多值7.4.3 单独表 7.5 值对象案例 7.5 .1 商品及价格策略 7.5 .2 商品与评论 7.5 .3 订单与收货地址 7.5 .4 账本与流水 7.5 .5 角色与权限7.6 额外的礼物———领域模型基础类库 7.6 .1 领域模型基类 7.6 .2 领域模型验证能力总 结第8 章 独立自主———聚合(Aggregate) 8.1 认识聚合 8.1 .1 使用聚合的原因 8.1 .2 聚合示例 8.2 聚合的规模 8.2.1 事务规模 8.2.2 业务一致性范围 8.2.3 通用语言参考 8.3 聚合的特征 8.3 .1 形成工作单元 8.3 .2 有唯一对外面 8.3 .3 知识聚合 8.3 .4 基本事务单元8.3 .5 不可分割8.3 .6 通过标识符集成 8.4 聚合的事务处理 8.4.1 全局事务 8.4.2 分布式事务5微服务下的领域驱动设计8.5 额外的礼物———简单Saga 实现8.5 .1 编排式Saga 设计思想8.5 .2 代码实现 总 结第9 章 化土为玉———工厂(Factory)9 .1 使用工厂的时机 9 .2 工厂的责任 9 .2.1 简化构建领域模型 9 .2.2 保障对象合法 9 .2.3 明确对象责任9 .2.4 避免知识垄断 9 .3 工厂的实现形式 9 .3 .1 领域模型包含工厂方法 9 .3 .2 聚合子类作为工厂9 .3 .3 领域服务作为工厂 9 .4 工厂实践9 .5 使用工厂的注意事项9 .5 .1 厘清使用约束 9 .5 .2 约束失败处理方式 9 .5 .3 注意替代方案 9 .5 .4 明确构建目标 9 .5 .5 不处理业务 9 .5 .6 保持简单 总 结0 章 浴火重生———资源库 (Repository)10.1 认识资源库10.2 资源库的设计10.2.1 接口与实现分开10.2.2 考虑输入输出限制10.2.3 明确使用目的10.2.4 不包含业务10.2.5 屏蔽持久化10.2.6 依据业务定义10.2.7 保持简单10.3 资源库实现10.4 如何处理层级关系10.5 使用资源库时的注意事项10.5 .1 数据级联10.5 .2 多种持久化方式共存10.5 .3 性能处理10.6 额外的礼物———工作单元(Unit of Work) 10.6 .1 如何使用本地事务10.6 .2 工作单元简介10.6 .3 工作单元的实现总 结1 章 运筹帷幄———领域服务(Domain Service)11 .1 认识领域服务11 .1 .1 订单实体担负的责任过重11 .1 .2 代码不够规范11 .2 领域服务的作用11 .2.1 执行业务逻辑11 .2.2 对象转换11 .2.3 处理对象协作11 .2.4 减少对象耦合11 .2.5 控制业务走向11 .3 领域服务的使用模式11 .3 .1 实体引用领域服务11 .3 .2 嵌套使用领域服务11 .3 .3 应用服务引用领域服务11 .4 领域服务的特性11 .4.1 无状态11 .4.2 参数多为实体11 .4.3 只依赖领域模型11 .4.4 反映通用语言11 .4.5 承担业务指挥11 .4.6 返回值有限制11 .5 额外的礼物———微服务中的面向对象编程11 .5 .1 如何进行分布式环境下的面向对象编程11 .5 .2 对领域服务的反思总 结7微服务下的领域驱动设计2 章 承前启后———应用服务(Application Service) 12.1 认识应用服务12.1 .1 应用服务对命令型业务的支撑12.1 .2 应用服务对查询型业务的支撑12.1 .3 宏观上的应用服务12.2 应用服务的使用限制12.2.1 关注输入限制类型12.2.2 遵守输出类型约束12.2.3 使用依赖注入12.2.4 无需接口12.2.5 参数必验12.2.6 依据业务进行命名12.2.7 关注异常处理12.3 额外的礼物———应用服务接口参数验证总 结致 谢参考文献
作者介绍
序言
— 没有更多了 —
以下为对购买帮助不大的评价