相关链接
DDD领域驱动设计批评文集>>
《实现领域驱动设计》的翻译错误>>
[答疑]《实现领域驱动设计》的译者其实没错?(一)>>
[答疑]《实现领域驱动设计》的译者其实没错?(二)>>
十多年前,我去一家北京某家单位讲课。
第一天结束后,主人家,也就是主张引进这个培训的领导——IT部门的A总,在附近请我吃饭。
互吹环节,列席的另外一位领导B总说,“我今天听了一节课,感觉对我们帮助很大啊,以后还要有劳潘老师……”,接下来的话让我的满脸笑容瞬间呆滞——“继续帮助我们推进敏捷开发”。
**********
上一篇关于《实现领域驱动设计》中译本的文章已经是2022年了。
本来不想针对这个写太多,其实我的观点是这些书连英文原版都不推荐看,更不用说歪曲得不行的中译本了,除非是负负得正,歪打正着。
但架不住偶尔就有同学把我当“领域驱动设计专家”,发个中译本的图片过来找我答疑“我正在学习领域驱动设计,有个问题……”。
于是,决定还是写一下。
该书真正的内容从第2章开始,我就从第2章开始评点。
评点1
原文
图1 Implementing Domain-Driven Design原文
原译文
图2 《实现领域驱动设计》译文
第2章一开头的翻译就出现了大问题,把作者的整体意思扭曲了。
①
three things是说三件要做对(get these right)的事情,不是说三个概念。
原文此处没有“概念(concept)”一词,纯属译者自行加戏。需要用到“概念(concept)”的地方,作者会使用的。例如,接下里的文字就有“all these concepts”,指的就是用粗体标出的“概念”。
我把things和concepts在图1中圈出。
这个错误引出了下面的大错误。
②
• What your Domain is
• What your Subdomains are
• What your Bounded Contexts are
原译文译成:
什么是领域,什么是子域,什么是限界上下文。
如果本章的主要内容是给出这几个概念的定义,那么这本书就应该叫《领域驱动设计》,而不是叫《实现领域驱动设计》。
其实作者的意思是:
你(严谨一些,应该是“你的系统”)的领域是什么?你的子领域是什么?你的限界上下文是什么?
作者是想讲述:怎样为你的系统正确地找到这些东西。
就像汪峰问:
你的梦想是什么?
要真实地回答这个问题并不容易。
也许你以为的梦想,其实是别人(例如家长)硬塞的。有的人甚至需要心理学专业人士的帮助,才能认清自己真实的梦想。
如果按照原译文这样译,就变成了汪峰做报告《什么是梦想》。
③
原文“discussed in detail(详细讨论)”被轻飘飘地翻译成“出现在”。
当然,Evans的书也没有“详细讨论”,这纯属圈子里的高情商商业互吹。
④
延续前面的错误,原文没有说“概念”。这里说的是把事情做对。
**********
译文可以改为
有三件事情,你必须非常清楚地了解:
你的领域是什么
你的子领域是什么
你的限界上下文是什么
不能只是因为[Evans]把所有这些概念放在后半部分详细讨论,就觉得它们是次要的。要成功实现DDD,你必须把这几件事情做对。
反转
还存在另一种可能,也就是上面所说的负负得正,歪打正着。
译者站在三四层楼这么高,比所有人都清醒,所以在译文中拨乱反正。
译者看清了本书没有像作者宣称的那样往前迈进一步,而只是重复了Evans书的内容,于是把译文写成“什么是领域……”。
同样,译者看清了Evans的书没有详细讨论这些概念,所以把译文改成“出现在”。
您觉得呢?
如何选择UMLChina服务
UMLChina公众号精选(20240222更新)