DDD领域驱动设计批评文集
做强化自测题获得“软件方法建模师”称号
《软件方法》各章合集
“Analysis Patterns”的第6章“存货和会计”原文:
The transaction's creation would then be the only place that could create entries. ... Providing only the transaction's creation routine is made public, this rule can be enforced.
2004(机械工业出版社)中译本的译文为:
译文基本上是正确的。
2020(人民邮电出版社)中译本的译文为:
2020中译本把Providing only一句翻译为“只要……公有……就可以执行”,这是有问题的。
我们先抛开原文不谈,从软件设计的常理来看:软件设计应该是能不public就尽量不public。如果一个解决方案是“只要public,问题就解决了”,这个解决方案是不是太容易了?
也许是翻译的时候漏看了only,但这里的问题和翻译、原创并没有太大关系,而是对“天上掉馅饼”要持有基本的警惕。
/*花絮
就像我前几天刚欣赏过的一篇领域驱动设计文章,里面描述领域驱动设计革命性创新“通用语言”的内容真是让人流口水:
亮点1:这招绝了。领域驱动设计又又又创新了。
亮点2:他们(n人),2天时间,50个术语。工作量堆满。
亮点3:形成词典。仅仅是词典,还不是类图、状态机图。
亮点4:开发效率提高30%。返工率降低40%。真厉害!
参见:小甜甜和牛夫人>>
*花絮结束/
**********
我们可以用更形式化的表示法来表示:
按照原文的意思,如果有3个操作,“规则能强制执行”的概率只有1/8,如果按照2020中译本的意思, 概率就上升到了1/2。