热门搜索: 中考 高考 考试 开卷17
服务电话 024-23945002/96192
 

.NET整洁架构之道

编号:
wx1203852974
销售价:
¥87.12
(市场价: ¥99.00)
赠送积分:
87
数量:
   
商品介绍

理论与实践深度融合:不仅解析模块化架构的理论基础,更通过具体实现层(五层架构)和实际应用场景(单体/微服务、渲染模式选择等)提供可落地的解决方案。

本书分为三部分。第一部分为理论,为软件模块化奠定了基础,追溯了软件架构的历史,并总结了领域驱动设计(DDD)的要点——这是一种非常有助于拆解业务领域的方法,尽管在项目中并非必要。第二部分为实现,讲述了构成“整洁”架构的五个层。这部分的重点并不在于架构的同心圆形式,这种形式已经被大量的书籍和文章所普及,而在于各个构成层次所提供的实际价值:表示层、应用层、领域层、领域服务层和基础设施层。第三部分为应用,主要关注三个经常遇到的话题:是选择单体应用还是微服务,是选择客户端渲染还是服务器端渲染,以及技术债务和技术信用。

译者序<br />前言<br />致谢<br />第一部分 理论<br />第1章 模块化软件架构的历史和演变  2<br />1.1 模块化三层架构  3<br />1.1.1 三层架构的主要特点  4<br />1.1.2 逻辑层、物理层和模块化  6<br />1.2 DDD的典型架构  8<br />1.2.1 DDD配套的支持架构  8<br />1.2.2 其他补充  11<br />1.3 不同类型的分层架构  15<br />1.3.1 六边形架构  15<br />1.3.2 整洁架构  16<br />1.3.3 特性驱动架构  17<br />1.4 本章小结  19<br />第2章 DDD的核心精髓  20<br />2.1 DDD简介  21<br />2.1.1 战略分析  21<br />2.1.2 战术设计  23<br />2.1.3 DDD的误解  24<br />2.1.4 战略设计工具  26<br />2.2 UL  26<br />2.2.1 领域语言术语表  27<br />2.2.2 构建术语表  28<br />2.2.3 保持业务和代码的一致性  30<br />2.3 限界上下文  33<br />2.3.1 处理歧义  34<br />2.3.2 设计限界上下文  36<br />2.4 上下文映射  39<br />2.4.1 上游和下游  39<br />2.4.2 上下文映射示例  40<br />2.4.3 部署映射示例  41<br />2.5 本章小结  42<br />第3章 模块化设计的基础  43<br />3.1 模块化设计的要素与原则  44<br />3.1.1 SoC  44<br />3.1.2 松耦合  45<br />3.1.3 可复用性  45<br />3.1.4 依赖项管理  46<br />3.1.5 文档  46<br />3.1.6 可测试性  46<br />3.2 应用模块化设计  47<br />3.2.1 表示层:与外界交互  47<br />3.2.2 应用层:处理接收到的指令  48<br />3.2.3 领域层:表示领域实体  48<br />3.2.4 数据/基础设施层:持久化数据  48<br />3.3 实现模块化  48<br />3.3.1 在单体中增添模块化设计  49<br />3.3.2 微服务简介  50<br />3.4 最简方案原则  52<br />3.4.1 可维护性  53<br />3.4.2 可测试性  54<br />3.5 本章小结  56<br />第二部分 实现<br />第4章 表示层  60<br />4.1 Renoir项目:最终目标  61<br />4.1.1 应用程序介绍  61<br />4.1.2 抽象上下文映射  63<br />4.1.3 物理上下文映射  66<br />4.2 业务需求工程  69<br />4.2.1 分解软件项目  70<br />4.2.2 基于事件的故事板  70<br />4.2.3 Renoir项目的基本任务  72<br />4.3 表示层的边界和部署  73<br />4.3.1 敲开Web服务器的门  74<br />4.3.2 ASP.NET应用程序端点  75<br />4.4 表示层开发  76<br />4.4.1 连接到业务工作流  76<br />4.4.2 前端及相关技术  81<br />4.4.3 纯API表示层  82<br />4.5 本章小结  83<br />第5章 应用层  85<br />5.1 Renoir项目架构图  86<br />5.1.1 访问控制子系统  86<br />5.1.2 文档管理子系统  88<br />5.1.3 在Visual Studio中打开Renoir项目  89<br />5.2 任务编排  90<br />5.2.1 任务简介  90<br />5.2.2 分布式任务示例  91<br />5.2.3 Renoir项目中的任务示例  93<br />5.3 数据传输  93<br />5.3.1 从表示层到应用层  94<br />5.3.2 从应用层到持久化层  98<br />5.4 实现细节  100<br />5.4.1 应用层概要  101<br />5.4.2 应用程序设置  104<br />5.4.3 日志记录  108<br />5.4.4 处理和抛出异常  113<br />5.4.5 缓存及其模式  117<br />5.4.6 注入SignalR连接中心  121<br />5.5 应用层的边界和部署  123<br />5.5.1 依赖列表  123<br />5.5.2 部署选项  123<br />5.6 本章小结  125<br />第6章 领域层  126<br />6.1 分解领域层  126<br />6.1.1 业务领域模型  126<br />6.1.2 辅助领域服务  129<br />6.2 构建领域模型  131<br />6.2.1 将焦点从数据转向行为  131<br />6.2.2 领域模型的组成部分  134<br />6.2.3 Renoir项目的领域模型  138<br />6.3 领域漫游指南  139<br />6.3.1 治疗软件贫血症  140<br />6.3.2 实体类的共同特征  141<br />6.3.3 代码礼仪  144<br />6.3.4 代码风格规范  153<br />6.3.5 编写真正易读的代码  157<br />6.4 本章小结  160<br />第7章 领域服务层  161<br />7.1 领域服务的定义  162<br />7.1.1 领域服务的无状态特征  162<br />7.1.2 标记领域服务类别  162<br />7.1.3 领域服务和UL  163<br />7.1.4 领域服务的数据访问  163<br />7.1.5 领域服务的数据注入  164<br />7.2 常见的领域服务场景  164<br />7.2.1 确定客户的忠诚度状态  164<br />7.2.2 领域事件  165<br />7.2.3 发送业务邮件  166<br />7.2.4 为密码加密服务  167<br />7.3 具体实现  168<br />7.3.1 领域服务的一个例子  168<br />7.3.2 有用且相关的模式  170<br />7.3.3 REPR模式  171<br />7.4 其他问题  176<br />7.4.1 领域服务是否有必要  176<br />7.4.2 领域服务的其他应用场景  178<br />7.5 本章小结  179<br />第8章 基础设施层  180<br />8.1 基础设施层的职责  181<br />8.1.1 数据持久化和存储  181<br />8.1.2 与外部服务的通信  182<br />8.1.3 与内部服务的通信  182<br />8.2 实现持久化层  183<br />8.2.1 仓库类  184<br />8.2.2 使用EF Core  188<br />8.2.3 使用Dapper  196<br />8.2.4 在数据库中托管业务逻辑  197<br />8.3 数据存储架构  199<br />8.3.1 介绍命令/查询分离  199<br />8.3.2 ES执行摘要  203<br />8.4 本章小结  204<br />第三部分 应用<br />第9章 微服务和模块化单体架构  206<br />9.1 远离遗留的单体系统  207<br />9.1.1 并非所有单体架构都是糟糕的  207<br />9.1.2 单体架构的潜在缺点  208<br />9.2 关于微服务  210<br />9.2.1 早期采用者  211<br />9.2.2 微服务架构和SOA的原则  211<br />9.2.3 微服务的“微”到底有多微  212<br />9.2.4 微服务的优点  214<br />9.2.5 微服务的缺点  215<br />9.3 微服务是否适用于所有应用程序  222<br />9.3.1 大型企业的一个大误解  222<br />9.3.2 SOA和微服务  223<br />9.3.3 微服务是否适合你的场景  224<br />9.3.4 规划和部署  227<br />9.4 模块化单体  231<br />9.4.1 适用于新项目的架构  232<br />9.4.2 模块化单体策略更适用于新项目  232<br />9.4.3 从模块到微服务  235<br />9.5 本章小结  238<br />第10章 客户端渲染和服务器端渲染  239<br />10.1 Web应用程序简史  240<br />10.1.1 史前时代  240<br />10.1.2 服务器端脚本时代  242<br />10.1.3 客户端脚本时代  244<br />10.2 客户端渲染  246<br />10.2.1 HTML层  247<br />10.2.2 API层  250<br />10.2.3 迈向更现代的史前时代  253<br />10.3 SSR  257<br />10.3.1 前后端分离  258<br />10.3.2 ASP.NET前端选项  259<br />10.3.3 ASP.NET Core与Node.js的对比  262<br />10.3.4 阻塞式/非阻塞式传说  265<br />10.4 本章小结  267<br />第11章 技术债务与技术信用  268<br />11.1 技术债务的隐藏成本  269<br />11.1.1 处理技术债务  269<br />11.1.2 解决债务的方法  271<br />11.1.3 会放大债务的行为  273<br />11.2 技术信用的隐藏收益  275<br />11.2.1 破窗理论  276<br />11.2.2 重构  278<br />11.2.3 做正确的事情  280<br />11.3 本章小结  281

商品参数
基本信息
出版社 机械工业出版社
ISBN 9787111789895
条码 9787111789895
编者 [意]迪诺·埃斯波西托(Dino Esposito) 著
译者
出版年月 2025-09-01 00:00:00.0
开本 16开
装帧 平装
页数 284
字数 397
版次 1
印次 1
纸张
商品评论

暂无商品评论信息 [发表商品评论]

商品咨询

暂无商品咨询信息 [发表商品咨询]