序 二
——高翊凯[1]
2019年的冬天,我从台湾赶往上海,为公司内的团队进行领域驱动设计(DDD)与事件风暴的培训,在完成了培训工作后马不停蹄地赶往北京,只为了与领域驱动设计社区的伙伴王威、张逸相聚。在2019年领域驱动设计中国峰会(2019 DDD China Conference)上,我们分享了领域驱动设计台湾社区对领域驱动设计的理解与实践方式。是日恰巧迎来了北京的初雪,趁着此情此景,一行人把酒言欢,正是“初雪纷飞夜访,奇闻经历共话,点拨思绪再整,把酒笑谈学涯”。
当时我们探讨了一个很重要的话题:很多人在学习领域驱动设计时,往往初探不得其窍门,而工作背景不同的人看待这一方法又往往仅侧重于一部分战略指导,或者只关注战略设计实践的代码层级,但不管侧重于哪一部分,都会让这种经典的指导协作与实现业务战略目标的软件工程方法略显失重,无法尽得其精要。
2003年,Eric Evans的著作《领域驱动设计》从欧洲席卷而来,乃至于全球的软件工作者都渴望从他提出的领域建模方法中得到帮助,但十多年来,Eric Evans本人经常被问到:“有没有一种方法可以很好地指引我们进行业务建模?什么样的建模才是合理的,或者说可以一次就成其事达其标?”Eric Evans本人在很多公开场合都提过,其实这一切都依然需要依赖一些经验和持续积累的领域知识。对于这样需要由高度经验法则施行的领域驱动设计,一般的软件架构师、程序员以及相关的从业人员往往望而却步,个中原因便是始终少了一个系统性的指引,将业务流程梳理的产物对接到后续的程序开发中,实现从业务架构到系统架构的良好实践,使常见的业务与技术之间的隔阂降到最低。
对于这本书,我首先要向张逸老师表达感激之情,然后祝贺本书的读者!感激张逸老师花了多年时间梳理并融合了其在软件设计领域的实务经验,将战略推进到战术过程中佚失的部分,并通过领域驱动设计统一过程(DDDUP),使领域驱动设计方法更加完备。祝贺本书的读者在拿到本书时就几乎综览了过去20多年的软件开发历程所提到的诸多重要元素。本书结合大量实务案例来探讨为何需要战略指导、为何需要以固有的战术设计范式指导实践,并辅以领域驱动设计统一过程的指导原则,指引读者逐步落地。本书不单纯以领域驱动设计来讲老生常谈的方法,而更像一位坐在你身边的资深架构师,与你结对进行系统架构设计,一起探索软件架构设计的奥秘。
如果读者对软件工程有极大的热情,渴望更好地理解、实施领域驱动设计,解决复杂的业务问题,就千万别错过这本书。但我最真切地提醒读者,在购书之后务必阅读与身体力行兼具。行之才是学之。
[1] 高翊凯(Kim Kao),Amazon Web Services(AWS)资深解决方案架构师,领域驱动设计台湾社区共同发起人之一。他的专长是软件系统设计,并致力于无服务器服务推广,推动企业透过领域驱动设计与便捷的云端服务打造更适切的建构系统方案,解决实际的业务问题。