书籍详情

Web开发者晋级之道:架构、模式和领域驱动设计

Web开发者晋级之道:架构、模式和领域驱动设计

作者:王西友 著

出版社:机械工业出版社

出版时间:2021-08-01

ISBN:9787111688105

定价:¥109.80

购买这本书可以去
内容简介
  《Web开发者晋级之道:架构、模式和领域驱动设计》系统介绍软件的设计思想、架构和开发模式,带领读者快速建立软件开发的知识体系,另外还详细介绍基于ASP.NET Core的项目案例开发,帮助读者全面掌握如何快速开发高效、稳定的Web应用程序。 《Web开发者晋级之道:架构、模式和领域驱动设计》共10章,分为2篇。第1篇“软件开发内功心法”,首先介绍软件设计思想、软件架构、面向对象编程的六大原则和设计模式等知识,为软件开发初学者晋级打好基础,然后简要介绍一个电商项目的概况和架构设计,为后续的项目开发实践做好铺垫。第2篇“领域驱动设计落地”,首先介绍领域驱动设计的思想与方法,然后通过一个电商项目案例的开发实践,展现以领域模型为核心的Web应用程序的完整开发过程,包括基础设施层的实现、应用程序层的实现和展示层的实现等,最后对MVC架构做详细介绍,这些内容展现了高品质软件开发的核心价值和面向对象程序设计的思想价值。 《Web开发者晋级之道:架构、模式和领域驱动设计》理论结合实践,讲解深入浅出,适合有一定C#语言基础的Web开发人员阅读,尤其适合想要建立软件开发知识体系并提高开发水平的Web程序员阅读。另外,《Web开发者晋级之道:架构、模式和领域驱动设计》还可以作为相关培训机构的教材。
作者简介
  王西友 现供职于徐工集团,任主任设计师和特聘高级技术专家。多年以来一直从事智能控制和信息化软件的开发工作,在软件架构、设计模式及领域驱动设计方面有深厚的理论功底和丰富的开发经验。
目录
前言
第1篇  软件开发内功心法
第1章  如何开始一个软件项目       2
1.1  软件项目开发面临的挑战   2
1.1.1  领域模型的创建       3
1.1.2  架构的选择       4
1.1.3  软件框架的使用       5
1.1.4  数据存储的实现       6
1.2  小结      6
第2章  软件如何解决问题       7
2.1  软件的发展历程   7
2.1.1  面向过程的编程       8
2.1.2  面向对象的编程       9
2.1.3  面向组件的编程       16
2.1.4  面向方面的编程       19
2.1.5  综述   21
2.2  对象的意义   21
2.2.1  对象和类型       22
2.2.2  对象的创建和生命周期的控制       23
2.2.3  对象的依赖       26
2.3  组件      26
2.3.1  接口与实现分离       27
2.3.2  接口分解   30
2.3.3  接口的多重实现与继承   33
2.3.4  接口与契约式编程   34
2.4  小结      35
第3章  软件架构       36
3.1  软件架构概述      36
3.1.1  软件架构的定义       36
3.1.2  软件架构风格和架构模式       38
3.1.3  4 1视图    40
3.2  主流软件架构简介      41
3.2.1  分层架构   41
3.2.2  MVC架构  45
3.2.3  REST架构 47
3.2.4  微服务架构       52
3.3  小结      54
第4章  面向对象的设计模式和原则       55
4.1  重用      55
4.1.1  继承重用   56
4.1.2  组合重用   60
4.1.3  模式重用   62
4.2  面向对象的设计原则   63
4.2.1  单一职责原则   63
4.2.2  开闭原则   65
4.2.3  里氏代换原则   67
4.2.4  依赖倒置原则   71
4.2.5  接口隔离原则   73
4.2.6  迪米特法则       75
4.3  设计模式      79
4.3.1  设计模式的定义       80
4.3.2  设计模式的分类和应用   80
4.3.3  如何使用设计模式   81
4.4  小结      81
第5章  项目概况与架构设计    83
5.1  iShopping项目     83
5.1.1  项目简介   83
5.1.2  用Java还是.NET Core     84
5.1.3  集成开发环境   85
5.2  iShopping的架构设计 86
5.2.1  领域驱动设计和逻辑视图       86
5.2.2  开发视图   88
5.2.3  进程视图   89
5.2.4  物理视图   91
5.2.5  场景视图   92
5.3  小结      93
第2篇  领域驱动设计落地
第6章  领域模型       96
6.1  领域驱动设计      96
6.2  领域对象的识别与创建      98
6.2.1  实体对象   99
6.2.2  实体对象的标识和替换   104
6.2.3  值对象       108
6.2.4  用值对象封装复杂的逻辑       114
6.3  整体设计      124
6.3.1  领域的划分       125
6.3.2  限界上下文       127
6.3.3  限界上下文的映射   128
6.4  聚合      142
6.4.1  聚合对象   142
6.4.2  使用聚合对象实现限界上下文       143
6.4.3  聚合对象之间的导航       151
6.4.4  聚合内部对象的实现和引用   156
6.5  领域服务对象      157
6.5.1  领域服务   158
6.5.2  领域服务和应用服务       160
6.5.3  领域服务与贫血模型       161
6.6  领域事件      163
6.6.1  领域事件简介   164
6.6.2  领域事件的发布和订阅   166
6.7  领域对象的生命周期   176
6.7.1  工厂和构建器   176
6.7.2  仓储对象   179
6.8  小结      182
第7章  综合运用领域模型       183
7.1  商品目录上下文的实现      183
7.1.1  商品分类聚合的实现       184
7.1.2  商品聚合的实现       192
7.2  订单上下文的实现      202
7.2.1  购物车聚合的实现   204
7.2.2  订单聚合的实现       210
7.2.3  订单优惠聚合的实现       224
7.2.4  订单费用计算服务的实现       229
7.3  小结      232
第8章  基础设施层的实现       233
8.1  基础设施层的创建      233
8.2  数据存储      234
8.2.1  数据库设计范式       235
8.2.2  事务   238
8.2.3  NoSQL数据库  240
8.3  对象关系映射      241
8.3.1  对象-数据库阻抗失配      241
8.3.2  对象关系映射的困难       242
8.3.3  传统的数据访问技术ADO.NET     243
8.4  Entity Framework Core框架       247
8.4.1  Entity Framework Core的引用       247
8.4.2  Entity Framework Core简介    249
8.4.3  实现自定义数据上下文   252
8.4.4  实现对象仓储   270
8.5  MongoDB应用     280
8.5.1  MongoDB数据库     281
8.5.2  使用MongoDB实现对象仓储 283
8.6  RabbitMQ应用     287
8.6.1  RabbitMQ的安装和配置  288
8.6.2  使用RabbitMQ实现事件总线 290
8.7  使用第三方WebAPI    297
8.7.1  WebAPI访问技术     297
8.7.2  使用WebAPI实现运输距离的计算       300
8.8  小结      303
第9章  应用程序层的实现       304
9.1  应用程序层简介   304
9.1.1  应用程序层和应用服务   306
9.1.2  应用服务的接口形式       310
9.1.3  CQRS风格的应用服务    312
9.1.4  事件存储   317
9.2  实现查询的方法   319
9.2.1  对象的映射       319
9.2.2  查询过滤器       321
9.2.3  数据代理   327
9.2.4  查询门面   334
9.3  小结      341
第10章  展示层和MVC框架   342
10.1  ASP.NET Core MVC框架 342
10.1.1  路由  343
10.1.2  MVC简介       346
10.1.3  控制器     349
10.1.4  控制器和领域模型  352
10.1.5  视图和模型     354
10.1.6  OWIN和反向代理  358
10.2  ASP.NET Core MVC项目 361
10.2.1  搭建MVC       362
10.2.2  依赖注入容器  367
10.2.3  搭建前端开发框架  371
10.3  控制器和视图的实现 372
10.3.1  控制器和视图  373
10.3.2  视图的表单提交     377
10.3.3  视图与服务器的异步通信     379
10.4  小结    382
……
猜您喜欢

读书导航