汪峰哭晕在厕所-《实现领域驱动设计》中译本评点-第2章(1)

news2024/9/23 1:21:00

相关链接

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更新)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1468101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计一个 shell 命令行程序

目录 实现 shell 主要思路 代码(Linux)系统 实现 shell 主要思路 1、要知道一个 shell 进程在运行起来都会在命令行呈现什么,如图是Xshell 登录成功后的界面:所以第一步要做的就是打印命令行提示符。 Xshell 命令行提示符的组…

人工智能_普通服务器CPU_安装清华开源人工智能AI大模型ChatGlm-6B_003---人工智能工作笔记0098

前面的环境安装差不多了,这里我没有安装git,因为我认为用不到,好下面去下载算法: 首先是算法下载: https://codeload.github.com/THUDM/ChatGLM-6B/zip/refs/heads/main 算法的下载连接是这里: 可以看到下载以后得到这个ChatGLM-6B-main这个算法压缩包 然后我们再去: 然后…

Linux配置Maven环境变量

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

探究全链路压力测试的含义与重要性

全链路压力测试是指对整个应用系统的各个环节或组件进行压力测试,以模拟实际生产环境中的用户负载和流量,评估系统在高负载条件下的性能表现。 1. 全链路压力测试的含义 全链路压力测试涉及系统的所有组件和环节,包括前端用户界面、应用服务器…

Java多线程并发学习

一、Java 中用到的线程调度 1. 抢占式调度: 抢占式调度指的是每条线程执行的时间、线程的切换都由系统控制,系统控制指的是在系统某种运行机制下,可能每条线程都分同样的执行时间片,也可能是某些线程执行的时间片较长&#xff0…

智胜未来,新时代IT技术人风口攻略-第七版(弃稿)

文章目录 前言鸿蒙生态科普调研人员画像角色先行结论 - 市场下的增量蛋糕高校助力鸿蒙 - 掀起鸿蒙教育热潮高校鸿蒙课程开设占比 - 巨大需求背后是矛盾冲突教研力量并非唯一原因 - 看重教学成果复用与效率 企业布局规划 - 多元市场前瞻视野全盘接纳仍需一段时间 - 积极正向的一…

神经网络系列---计算图基本原理

文章目录 计算图符号微分符号微分的步骤示例符号微分在计算图中的使用总结 数值微分前向差分法中心差分法数值微分的使用注意事项总结 自动微分1. 基本原理2. 主要类型3. 计算图4. 应用5. 工具和库6. 优点和缺点 计算图1. **计算图的建立**2. **前向传播**3. **反向传播**4. **…

IT廉连看——C语言——循环语句

IT廉连看——C语言——循环语句 循环语句分为三种: while for do while 一、while循环 我们已经掌握了,if语句: if(条件)语句; 当条件满足的情况下,if语句后的语句执行,否则不执行。 但是这个语句只会执行一次…

调度和管制机制

目录 1 调度机制 分组按优先级排队 公平排队 FQ (Fair Queuing) 加权公平排队 WFQ (Weighted Fair Queuing) WFQ 与 FIFO 的比较 2 管制机制 漏桶管制器 (leaky bucket policer) 3 漏桶机制与加权公平排队相结合 调度和管制机制是使互联网能够提供服务质量的重要措施。…

K线实战分析系列之三:吞没形态

K线实战分析系列之三:吞没形态 一、吞没形态二、看涨吞没形态三、看跌吞没形态四、吞没形态判别标准 一、吞没形态 两根或两根以上的K线形成的组合形态,吞没形态就是一种主要的反转形态。 这个形态由两根K线组成,前短后长,一阴一…

软考-中级-系统集成2023年综合知识(三)

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 软考中级专栏回顾 专栏…

Raspbian命令行RTSP/RTP服务

Raspbian命令行RTSP/RTP服务 1. 源由2. Raspbian摄像头2.1 命令行启动RTP摄像头2.2 命令行启动RTSP摄像头 3. 示例3.1 测试RTP摄像头3.2 测试RTSP摄像头3.3 QGroundControl测试3.3.1 RTSP配置3.3.2 RTP配置 4. 总结5. 参考资料 1. 源由 鉴于实际测试发现RTP协议下,…

K8S部署Java项目 pod报错 logs日志内容:no main manifest attribute, in app.jar

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

责任链模式与spring容器的搭配应用

背景 有个需求,原先只涉及到一种A情况设备的筛选,每次筛选会经过多个流程,比如先a功能,a功能通过再筛选b功能,然后再筛选c功能,以此类推。现在新增了另外一种B情况的筛选,B情况同样需要A情况的筛…

NestJS入门7:增加异常过滤器

前文参考: NestJS入门1 NestJS入门2:创建模块 NestJS入门3:不同请求方式前后端写法 NestJS入门4:MySQL typeorm 增删改查 NestJS入门5:加入Swagger NestJS入门6:日志中间件 本文代码基于上一篇文章《…

数字化转型导师坚鹏:政府数字化流程管理

政府数字化流程管理 课程背景: 很多政府存在以下问题: 不清楚数字化对流程有什么影响? 不知道政府业流程如何进行优化? 不知道政府业流程优化的具体案例? 课程特色: 有实战案例 有原创观点 …

【大厂AI课学习笔记NO.52】2.3深度学习开发任务实例(5)需求采集考虑维度

今天来学习,怎么做需求分析,如何明确数据采集需求。 我把自己考试通过的学习笔记,都分享到这里了,另外还有一个比较全的思维脑图,我导出为JPG文件了。下载地址在这里:https://download.csdn.net/download/g…

【C++私房菜】面向对象中的多态

文章目录 一、多态二、对象的静态类型和动态类型三、虚函数和纯虚函数1、虚函数2、虚析构函数3、抽象基类和纯虚函数4、多态的原理 四、重载、覆盖(重写)、隐藏(重定义)的对比 一、多态 OOP的核心思想是多态性(polymorphism)。多态性这个词源自希腊语,其含义是“多…

免费多域名证书,最多支持保护250个域名

随着企业规模扩大和多元化发展,拥有多个域名的需求变得普遍,此时,多域名SSL证书应运而生,并且这一类型的证书已经发展到能够安全地支持多达250个不同域名的加密需求。 多域名SSL证书,也称为SAN(Subject Alt…

【《高性能 MySQL》摘录】第 2 章 MySQL基准测试

文章目录 2.1 为什么需要基准测试2.2 基准测试的策略2.2.1 测试何种指标 2.3 基准测试方法2.3.1 设计和规划基准测试2.3.2 基准测试应该运行多长时间2.3.3 获取系统性能和状态2.3.4 获得准确的测试结果2.3.5 运行基准测试并分析结果2.3.6 绘图的重要性 2.4 基准测试工具…