描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787512442764
本书通过生动的案例和实用的指南,向读者展示了如何在实践中进行DDD落地以创造出灵活的、可维护的且具有良好可扩展性的软件系统。无论您是刚入门的研发人员还是经验丰富的软件工程师,这本书都可为您提供相应的指导,助您成为领域驱动设计领域中驾轻就熟的技术专家。
——亚信科技电信事业部总工程师兼OSS解决方案部总经理 陈友行
DDD不仅是令人着迷的学问,也是解决复杂业务问题的利器。本书作者通过简约但不简单的案例向读者展示了如何将这一抽象性十足的方法理论应用于实践当中,给大家以豁然开朗之感。
——中电福富信息科技有限公司副总经理 林启铵
本书作者以深厚的专业知识和丰富的实践经验为根本,将复杂的技术概念转化为易于理解的思想和语言,巧妙地将抽象的概念运用于具体的案例之中,能够让读者快速领悟DDD的精华。书中的设计技巧和建议,不仅能够帮助您快速掌握理论知识,还能带领您解决实践中的技术挑战,加速技能的提升和自身的成长。
——广东亿迅科技有限公司总工程师 廖小文
本书以实战理念为主旨, 对领域驱动设计的核心内容进行了全面解读。 书籍主要由两部分内容构成: 战略与战术。 第一部分以子域和限界为核心, 并通过案例的形式介绍了如何在现实中将其进行实践的知识; 第二部分则围绕应用架构、 聚合、 实体、 值对象、 领域服务等概念展开讲解, 重点描述了它们在应用中所充当的角色以及使用限制。 除此之外, 作者也根据自身的经验对一些常见的设计理论或设计模式进行了概括和总结, 如面向对象、 工作单元、Saga 分布式事务等。 尽管书中案例使用了Java 语言进行表达, 但并不会影响到读者的阅读体验。
本书的受众群体为软件工程师、 系统架构师、 需求分析师或计算机相关专业的在校师生等。
为什么要写此书
我小的时候比较喜欢拆家, 和幼年的哈士奇有些类似。 不过经济条件所限, 能拆的东西也仅限于钟表、 收音机这类小的物件儿。 儿时的梦想是成为一名科学家或老师, 不过随着成长, 梦想也逐渐变得更现实起来, 最终选择了与软件设计为伍。
很多人羡慕程序员的高薪与体面, 殊不知我们自嘲为“码农”。 软件设计是一种创造性的活动, 它与艺术创作类似。 自然, 大部分人的职业生涯早期的确都会做一些“搬砖”类的工作, 但我们不应该让其变成一种常态。
我于2007 年接触领域驱动设计(DomainDrivenDesign, 简称: DDD) , 但学习过程并不顺利。 好的方面是伴随着失败, 自己也积累了很多更为务实的知识。 2021 年, 我怀着满满的自信尝试在网上发布一些领域驱动设计相关的文章, 期望能将自己所学的知识进行总结与分享。 这期间有幸认识了北京航空航天大学出版社的编辑, 他们鼓励我将自身所学体系化, 本为玩票性质的事情自此开始偏向了另外一个方向, 成为编写本书的一大诱因。
为什么选择领域驱动设计
进入21 世纪, 人们的生活伴随着互联网的发展有了翻天覆地的变化。 加之智能手机和各类智能设备的催化, 单机软件所带来的满足感已经不能满足人们日常生活与工作的需要。 事物总是有两面性的, 软件的各种功能在满足我们方便使用的同时, 便是其规模和复杂度的急剧扩张, 仅仅是技术知识的爆炸对于精力有限的我们就是一项很大的挑战。
领域驱动设计诞生于21 世纪初, 历经20 余年的发展至今仍活力十足。 越来越多的人开始意识到它的强大和先进, 其思想被应用到各类大型软件项目中。 但现实的情况却很残酷: 我们都知道它很强大, 但我们不想用。 客观来讲, DDD 诞生之时的确是“超时代”的。 有些理论过于理想化并不能在真实的项目中被轻易实践, 比如“限界上下文”。 没有现代微服务技术的加持, 我们很难将其落地。
软件系统越发复杂, 使得企业不得不背负更高的建设与运营成本,DDD 作为应对软件复杂之道是解决这一问题的有力武器。 与此同时, 时代的发展以及技术的推陈出新也让 DDD 真正地有了属于自己的舞台, 这是我们选择它的原因。
如何使用本书
本书主要适用于软件设计人员和研发人员, 您需要至少了解一门面向对象开发语言, 如 C# 、Java。 当然, 这些仅仅是基础, 软件设计并不只是某一门特定的学问而是各类知识的集成。 所以想要无障碍阅读本书, 您还需要了解一些简单的设计模式以及UML 相关的内容。
本书分为战略与战术两部分, 后者所涉及的知识虽与前者有关系, 但亦可独立存在。 如果您初入软件设计行业或从事本行业时间尚短, 建议先从第二部分读起。 战略相关的知识理论色彩较浓厚, 是劝退读者的最佳武器; 战术部分则侧重于各种技术的讲解, 这才是程序员最喜欢的内容。 当您确信自己能够被 DDD 吸引的时候, 可再回到第一部分, 避免让自己的学习旅程出现“夭折”。
除技术人员之外, 项目经理、 架构师或需求分析师也可成为本书的读者, 尤其是战
略部分。 如果您的角色处于上述工种, 可以考虑从第一部分读起, 以学习如何站在更高的战略角度去了解系统的全貌; 学习如何将一个大的系统进行划小建设; 学习如何有效安排各类资源, 即钱、 事、 物。
与其说领域驱动设计是一种技术, 不如将其看成设计思想更为合适。 笔者资历尚浅, 本书其实是一种尝试, 即: 通过个人的理解并伴以务实的态度对领域驱动设计这一门学问进行个性化解读。 有理解或表达不当之处, 请读者在求同存异的同时, 有取舍地借鉴书中内容。
编 者
评论
还没有评论。