美文网首页@IT·互联网程序员
《实现领域驱动设计》译者序

《实现领域驱动设计》译者序

作者: 无知者云 | 来源:发表于2017-04-10 21:45 被阅读0次

2013年秋天的某个周末,我在公司翻译本书。对面一个刚入职的大学毕业生向我问起一个关于软件建模的问题,我给她讲到了实体、领域服务和限界上下文等概念。语毕,我立即有两点感触:第一,我已经被DDD深深影响了;第二,即便是对于那些小的软件项目,DDD依然有用武之地。

通常的看法是,DDD更适合于大型的软件系统,这也使很多软件开发者对DDD敬而远之。其实不然,DDD首先做为一种思想而存在着,它无关系统大小,而是教我们如何做好软件的。像实体、值对象这样的概念,我相信大家都在自己的项目中或多或少地用到,这些概念并不只存在于大型系统中,而是对任何系统皆然,因为他们体现了软件模型的本质所在。

曾经有一段时间,我希望在软件开发技能上有另一个层次的提高,于是我选择了DDD。在看完Eric Evans那本DDD开山之作之后,我了解了不少,也迷茫了许多。和其他人一样,我更希望看到一些实际的DDD例子。在网上搜索一番,我发现了本书;读完示例章节,我便爱不释手了。

在我看来,DDD绝非是什么标新立异之物,我更倾向于将其看成是软件发展的自然结果。就像在上世纪六七十年代出现了软件危机之后,面向对象成为了人们的救赎;瀑布式开发过程遇到瓶颈时,敏捷被搬上了舞台;而DDD则是对传统的以数据为中心的建模方式的反思结果。另外,我们还有“OO Done Right”的说法,即DDD是以正确的方式来使用面向对象。

我很看重事物发展过程的“自然”面。你把一组随机数交给一个中学生排序,估计她/他也是能琢磨出一种排序算法的,此时的排序算法很可能就是我们在大学里才学到的直接排序法。我想很多人也都在程序中创建过一些服务类,并且将事务边界放在这些类的方法上,那么此时,我们所创建的便是DDD所称之为的应用服务(Application Service)。于是我们看到,很多知识都可以通过我们自己的自然逻辑思考而获得。但是,我们和那些大牛的区别在于,他们有能力将这些知识概念化、理论化、抽象化和系统化。对于本书的作者Vaughn Vernon来说,也是如此。

如果说Eric Evans的《领域驱动设计》为我们提出了一些高屋建瓴的思想,那么本书便把这些思想落到了实处。而在本书中,作者也多次引用了《领域驱动设计》的相关章节。除此之外,本书还大量地引用了Gamma等人的《设计模式》和Martin Fowler的《企业应用架构模式》。所以,本书不只是关于软件建模的,而是正如本书的赞美者之一Randy Stafford所说,它还可以用于更加宽阔的软件架构领域。

在收到电子工业出版社的张春雨编辑寄来的英文原著时,我便开始盘算:一本六百页的书,每天翻译一页,我需要将近两年;每天翻译两页,也得十个月……一次次的组合之后,我已经厌倦了。于是不管三七二十一,白天工作,晚上翻译,平时工作,假期翻译。结果,四个月完工。

退却的时候也是有的,并且总会有这样那样的借口:“今天不在状态”、“明天再翻译也不迟”,诸如此类,凡此种种。每当此时,我便想起在故乡的山坡上顶着烈日当午弯腰锄地汗流滴土的父亲,于是再次打开已经合上的笔记本电脑……

感谢我的父母赋予我的精神动力,使我得以顺利地完成本书的翻译。

在翻译的过程中,我得到了我的同事,在DDD方面颇有建树的张逸[1]的大力帮助。忘不了的,是那些在下班路上和他一起探讨聚合、CQRS的日子。

感谢郑晔[2]和格茸扎西在我还没有开始翻译本书时便主动提出帮我审校。另外,还要感谢澳大利亚的MarkRyall和加拿大的Rick Harcus向我提供的有关英语语言文化上的帮助。

滕云
2013年10月 成都

最后做个广告,有兴趣的读者可以通过以下方式获得本书:
亚马逊 当当 京东 豆瓣

[1]张逸,ThoughtWorks咨询师,著有《软件设计精要与模式》,译有《恰如其分的软件架构》等书。
[2]郑晔,ThoughtWorks咨询师,2013年Oracle Duke选择奖得主,译有《Scala程序设计》和《Clojure编程乐趣》等书。

==================================================

相关文章

  • 《实现领域驱动设计》译者序

    2013年秋天的某个周末,我在公司翻译本书。对面一个刚入职的大学毕业生向我问起一个关于软件建模的问题,我给她讲到了...

  • 1.复杂系统中采用DDD-lite实现模糊需求--开篇

    一、序 2015年底初识DDD(领域驱动设计),阅读和学习《领域驱动设计》By Eric和《实现领域驱动设计》By...

  • 读《领域驱动设计》有感

    写完《DDD领域驱动设计初探》后,教主推荐了两本领域驱动设计的书--《领域驱动设计》和《实现领域驱动设计》,...

  • 领域驱动设计DDD

    最近在换工作,利用间隙看了两本领域驱动设计的经典书籍:《领域驱动设计:软件核心复杂性应对之道》,《实现领域驱动设计...

  • 《领域驱动设计精粹》读书笔记

    《领域驱动设计精粹》的作者Vaughn Vernon同样也是《实现领域驱动设计》的作者。书中精炼的概括了《DDD》...

  • DDD实现之路

    编者按:这篇文章最早撰写于2014年,作者也是《实现领域驱动设计》的译者。几年过去了,DDD在坊间依然方兴未艾,然...

  • 本周读书复盘

    1.《实现领域驱动设计》 DDD领域驱动设计这几年在软件设计领域非常火,特别是进来软件的业务需求日益复杂,软件规模...

  • 领域驱动设计释厄录

    基础 学习DDD看的书《实现领域驱动设计》基础只是,概念《领域驱动设计:软件核心复杂性应对之道 》使用,流程,串联...

  • 实现领域驱动设计-领域服务

    领域服务定义 先看看领域服务的定义:领域中的服务表示一个无状态的操作,它用于实现特定于某个领域的任务。当某个操作不...

  • 实现领域驱动设计-领域事件

    定义 将领域中所发生的活动建模成一系列的离散事件。每个事件都用领域对象来表示。领域事件是领域模型的组成部分,表示领...

网友评论

    本文标题:《实现领域驱动设计》译者序

    本文链接:https://www.haomeiwen.com/subject/srpeattx.html