成功加入购物车

去购物车结算 X
白湘云书社
  • 深入实践DDD 以DSL驱动复杂软件开发 9787111677710 杨捷锋 机械工业出版社
图文详情

深入实践DDD 以DSL驱动复杂软件开发 9787111677710 杨捷锋 机械工业出版社

举报

当天发货,全新正版书。新华书店集团直发,凡是套装书,价格异常时,请咨询后下单。

  • 出版时间: 
  • 装帧:    平装
  • 开本:    16开
  • ISBN:  9787111677710
  • 出版时间: 
  • 装帧:  平装
  • 开本:  16开

售价 66.90 6.8折

定价 ¥99.00 

品相 全新

优惠 满包邮

优惠 满减券
    运费
    本店暂时无法向该地区发货

    延迟发货说明

    时间:
    说明:

    上书时间2024-05-15

    数量
    库存16
    微信扫描下方二维码
    微信扫描打开成功后,点击右上角”...“进行转发

    卖家超过10天未登录

    十四年老店
    店铺等级
    拍卖等级
    资质认证
    90天平均
    成功完成
    93.04% (256笔)
    好评率
    99.62%
    发货时间
    8.87小时
    地址
    北京市通州区
    • 商品详情
    • 店铺评价
    立即购买 加入购物车 收藏
    手机购买
    微信扫码访问
    • 货号:
      1202328231
      商品描述:
      目录
      部分概念

      章DDD的关键概念2

      1.1自顶而下、逐步求精3

      1.1.1DDD开创全新分析流派3

      1.1.2什么是软件的核心复杂性4

      1.2什么是领域模型4

      1.3战术层面的关键概念6

      1.3.1实体6

      1.3.2值对象6

      1.3.3聚合与聚合根、聚合内部实体7

      1.3.4聚合的整体与局部9

      1.3.5聚合是数据修改的单元9

      1.3.6聚合分析是“拆分”的基础10

      1.3.7服务12

      1.4战略层面的关键概念13

      1.4.1限界上下文13

      1.4.2限界上下文与微服务14

      1.4.3防腐层15

      1.4.4统一语言18

      1.5ER模型、OO模型和关系模型19

      1.6概念建模与模型范式21

      第2章其他DDD相关概念22

      2.1领域ID22

      2.1.1自然键与代理键23

      2.1.2DDD实体的ID需要被最终用户看到23

      2.1.3什么时候使用代理键24

      2.2ID、LocalID与GlobalID26

      2.3命令、事件与状态27

      第3章CQRS与EventSourcing29

      3.1命令查询职责分离29

      3.2事件溯源32

      3.3From-Thru模式33

      3.3.1示例:ProductPrice33

      3.3.2示例:PartyRelationship35

      3.4CQRS、ES与流处理36

      第二部分设计

      第4章DDD的DSL是什么40

      4.1为什么DDD需要DSL41

      4.1.1为什么实现DDD那么难41

      4.1.2搞定DDD的“锤子”在哪里42

      4.2需要什么样的DSL43

      4.2.1在“信仰”上保持中立44

      4.2.2DDD原生45

      4.2.3在复杂和简单中平衡46

      4.2.4通过DSL重塑软件开发过程48

      4.3DDDML——DDD的DSL48

      4.3.1DDDML的词汇表49

      4.3.2DDDML的Schema51

      4.4DDDML示例:Car52

      4.4.1“对象”的名称在哪里55

      4.4.2使用两种命名风格:camelCase与PascalCase55

      4.4.3为何引入关键字itemType56

      第5章限界上下文57

      5.1DDDML文档的根结点下有什么57

      5.2限界上下文的配置59

      5.3名称空间62

      5.3.1再谈PascalCase命名风格62

      5.3.2注意两个字母的首字母缩写词63

      5.4关于模块64

      第6章值对象67

      6.1领域基础类型68

      6.1.1例子:从OFBiz借鉴过来的类型系统70

      6.1.2例子:任务的触发器73

      6.2数据值对象75

      6.3枚举对象76

      第7章聚合与实体79

      7.1用同一个结点描述聚合及聚合根79

      7.2实体之间只有一种基本关系82

      7.3关于实体的ID85

      7.4不变的实体89

      7.5动态对象90

      7.6继承与多态92

      7.6.1使用关键字inheritedFrom94

      7.6.2超对象95

      7.7引用97

      7.7.1定义实体的引用97

      7.7.2属性的类型与引用类型101

      7.8基本属性与派生属性102

      7.8.1类型为实体集合的派生属性103

      7.8.2类型为值对象的派生属性106

      7.9约束107

      7.9.1在实体层面的约束107

      7.9.2在属性层面的约束109

      7.10提供扩展点110

      第8章超越数据模型112

      8.1实体的方法112

      8.1.1聚合根的方法115

      8.1.2非聚合根实体的方法116

      8.1.3属性的命令117

      8.1.4命令ID与请求者ID119

      8.2记录业务逻辑119

      8.2.1关于accountingQuantityTypes120

      8.2.2关于derivationLogic120

      8.2.3关于filter121

      8.2.4使用关键字referenceFilter121

      8.2.5业务逻辑代码中的变量122

      8.2.6说说区块链123

      8.3领域服务123

      8.4在方法定义中使用关键字inheritedFrom125

      8.5方法的安全性126

      第9章模式128

      9.1账务模式128

      9.2状态机模式132

      9.3树结构模式137

      9.3.1简单的树137

      9.3.2使用关键字structureType138

      9.3.3使用关键字structureTypeFilter139

      第三部分实践

      0章处理限界上下文与值对象142

      10.1项目文件143

      10.2处理值对象144

      10.2.1一个需要处理的数据值对象示例145

      10.2.2使用Hibernate存储数据值对象146

      10.2.3处理值对象的集合149

      10.2.4在URL中使用数据值对象151

      10.2.5处理领域基础类型153

      1章处理聚合与实体161

      11.1生成聚合的代码162

      11.1.1接口163

      11.1.2代码中的命名问题178

      11.1.3接口的实现179

      11.1.4事件存储与持久化207

      11.1.5使用Validation框架218

      11.1.6保证静态方法与模型同步更新220

      11.1.7不使用事件溯源222

      11.2Override聚合对象的方法223

      11.3处理继承225

      11.3.1TPCH226

      11.3.2TPCC227

      11.3.3TPS228

      11.4处理模式229

      11.4.1处理账务模式229

      11.4.2处理状态机模式234

      2章处理领域服务238

      12.1处理数据的一致性239

      12.1.1使用数据库事务实现一致性240

      12.1.2使用Saga实现最终一致性241

      12.2发布与处理领域事件243

      12.2.1编写DDDML文档243

      12.2.2生成的事件发布代码245

      12.2.3编写生产端聚合的业务逻辑253

      12.2.4实现消费端领域事件的处理254

      12.3支持基于编制的Saga255

      12.3.1编写DDDML文档255

      12.3.2生成的Saga命令处理代码261

      12.3.3需要我们编写的Saga代码268

      12.3.4需要我们实现的实体方法273

      3章RESTfulAPI276

      13.1RESTfulAPI的最佳实践276

      13.1.1没有必要绞尽脑汁地寻找名词277

      13.1.2尽可能使用HTTP作为封包277

      13.1.3异常处理279

      13.2聚合的RESTfulAPI280

      13.2.1GET280

      13.2.2PUT291

      13.2.3PATCH293

      13.2.4DELETE295

      13.2.5POST295

      13.2.6事件溯源API296

      13.2.7树的查询接口297

      13.3服务的RESTfulAPI297

      13.4身份与访问管理299

      13.4.1获取OAuth2.0BearerToken299

      13.4.2在资源服务器上处理授权301

      13.5生成ClientSDK302

      13.5.1创建聚合实例303

      13.5.2更新聚合实例304

      13.5.3使用Retrofit2306

      4章直达UI308

      14.1两条路线的斗争309

      14.1.1前端“知道”领域模型309

      14.1.2前端“只知道”RESTfulAPI312

      14.2生成AdminUI312

      14.2.1使用referenceFilter313

      14.2.2展示派生的实体集合属性315

      14.2.3使用属性层面的约束316

      14.2.4使用UI层元数据317

      14.2.5构建更实时的应用318

      第四部分建模漫谈与DDD随想

      5章找回敏捷的软件设计322

      15.1重构不是万能灵药323

      15.2数据建模示例:订单的装运与支付324

      15.2.1订单与订单行项325

      15.2.2订单与订单装运组327

      15.2.3订单与装运单328

      15.2.4订单的项目发货329

      15.2.5订单的支付330

      15.3中台是一个轮回332

      15.4实例化需求与行为驱动测试334

      15.4.1什么是实例化需求334

      15.4.2BDD工具335

      15.4.3BDD工具应与DDD相得益彰336

      15.4.4不要在验收测试中使用固件数据336

      15.4.5制造“制造数据”的工具337

      15.5要领域模型驱动,不要UI驱动345

      15.6不要用“我”的视角设计核心模型346

      15.6.1让User消失347

      15.6.2认识一下Party348

      15.7我们想要的敏捷设计350

      6章说说SaaS351

      16.1何为SaaS351

      16.2多租户技术352

      16.3构建成功的SaaS有何难353

      16.3.1多租户系统的构建成本353

      16.3.2难以满足的定制化需求353

      16.3.3负重前行的传统软件公司355

      16.4SaaS需要DDD355

      7章更好的“锤子”356

      17.1我们制作的一个DDDMLGUI工具357

      17.1.1给领域建模提供起点357

      17.1.2创建新的限界上下文358

      17.1.3从OFBiz中“借鉴”数据模型359

      17.1.4构建项目并运行应用361

      17.1.5使用HTTPPUT方法创建实体362

      17.1.6给聚合增加方法363

      17.1.7生成限界上下文的DemoAdminUI368

      17.1.8让不同层级的开发人员各尽其能369

      17.2以统一语言建模370

      附录DDDML示例与缩写表373


      内容摘要
      本书是拥有二十年商业软件开发经验及十年技术管理经验的资深技术专家呕心沥血之作,也是目前市场上少有的阐述如何通过使用领域专用语言(DSL)实现领域驱动设计(DDD)的图书。书中首先带领读者重温DDD在战术设计层面及战略设计层面上的部分重要概念,并简要介绍了自DDD社区兴起的一些软件架构模式。然后阐述如何设计一门DDD原生的DSL,包括这个DSL的规范支持哪些特性、如何帮助团队描述领域模型的方方面面、这些特性的选择基于何种考量等。然后在此基础上详细讲解了如何使用技术工具将描述领域模型的DSL文档直接转化为可以工作的软件代码,在这个过程中结合诸多来自商业软件开发工作中的真实案例,展示并分析了大量的关键代码,让读者可以深入地了解制造那些基于DSL的DDD技术工具的秘密。之后讲述了一些建模案例,并探讨了一些与DDD相关的其他话题,对读者开拓技术思维、更深刻地理解DDD有所助益。

      配送说明

      ...

      相似商品

      为你推荐

    孔网啦啦啦啦啦纺织女工火锅店第三课

    开播时间:09月02日 10:30

    即将开播,去预约
    直播中,去观看