From 74906be24efa6bb2e116ae0cde35d26908b1ab49 Mon Sep 17 00:00:00 2001 From: eltrac Date: Mon, 20 Apr 2026 17:36:11 +0800 Subject: [library] new book review draft introduction and criticism on translation --- content/library/2026/clean-architecture.md | 50 ++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 content/library/2026/clean-architecture.md (limited to 'content') diff --git a/content/library/2026/clean-architecture.md b/content/library/2026/clean-architecture.md new file mode 100644 index 00000000..3228f77d --- /dev/null +++ b/content/library/2026/clean-architecture.md @@ -0,0 +1,50 @@ ++++ +title = '' +slug = '' +tags = [] +authors = [] +rating = 3 +date = 2026-04-20T17:01:13+08:00 +cover = '' +draft = true +toc = true +toot = '' +endnotes = ['本文第一段里,我说「很不喜欢软件架构课老师的授课风格」,其实我真正想说的是「教我软件架构的老师是个神经病」,但我想这种话放在文章开头总归不太合适。'] ++++ + +由于很不喜欢软件架构课老师的授课风格,所以决定完全自学。选这本书当教材可能不太合适,但的确收获颇多。眼看 Coding Agents 的趋势只增不减,就算在个人项目和自由软件项目中拒绝使用,工作时也无处可躲,我想每个程序员都需要做架构师了。如果缺乏整洁清晰的架构设计,那 Coding Agents 就只是在高速产出屎山代码而已,后续的维护只会是一场接一场燃烧 Token(或者说燃烧美元)的灾难。 + +--- + +## 对翻译的批评 + +丑话先说在前头。书很好,但翻译是真的烂,尽管我理解翻译技术类书籍的人都是从业者而非专业译者,对翻译质量有一定容忍度,但本书的四位译者实在是缺乏最基本的素养和**素质**,我读着非常恼火。 + +在第 27 章《服务:宏观与微观》中,图 27.1 的文字标注全是英文,比如 Taxi Selector,这没问题,因为编写程序时就会用这些单词命名。有问题的是,在几个段落过后的图 27.2 中,只有 Taxi UI 是英文,其他的全都变成了「出租车匹配」之类的词。就算抛开出现在同一章节的两张图前后不一致不谈,同一张图里也是中英文混杂,明明是相同的元素,有的翻译了,有的却没翻译。更不谈图表之外的文字段落中使用的还是 Taxi Selector 等英文单词,读着要怎么把图表中的元素和文字段落中描述的对象联系起来? + +在图 27.3 中,原本还被翻译成「小猫」的 Kitty 原样出现在图中,这次更好笑,图里写的是「kitty 查找」「kitty 来源」「kitty 匹配」。难道这个 Kitty 和前文的「小猫」是不同概念吗?做到术语统一对专业软件工程师来说不难吧?做到语言统一对译者来说也不难吧?在图 27.4 中,又出现了「小猫匹配」这个词。 + +最让我感到气愤的还不是翻译问题。前面的只能说是「缺乏译者素养」,接下来要提的问题就纯粹是「没素质」了。 + +同样是第 27 章,这一章的最后一节是「本章小结」,原文只有两段话,如下: + +> As useful as services are to the scalability and develop-ability of a system, they are not, in and of themselves, architecturally significant elements. The architecture of a system is defined by the boundaries drawn within that system, and by the dependencies that cross those boundaries. That architecture is not defined by the physical mechanisms by which elements communicate and execute. +> +> A service might be a single component, completely surrounded by an architectural boundary. Alternatively, a service might be composed of several components separated by architectural boundaries. In rare2 cases, clients and services may be so coupled as to have no architectural significance whatever. + +然而在译本中,这一节有四段话。在原本应该结束的地方,译者毫无预警、肆无忌惮地把自己想写的东西紧跟着写在了译文的后面,看起来就像那些文字本来就在那个地方一样: + +> Bob 大叔的案例非常精彩,确实,…… + +在本就不应该出现在这里的三段话的最后,译者恬不知耻地加上了「——译者注」。我想这位译者不仅英文翻译水平值得怀疑,中文理解能力也需要打一个问号。因为我非常确定,「译者注」一词中的「注」表示「注释」,而不是「正文」。在我的理解里,译者注存在的意义是**辅助读者理解文本**,如果译文没有跨文化理解问题,或者不需要交代什么背景信息,那译者注就不该写;译者注绝对不是译者对同一话题的理解或对文本的解读,更不是**对原文的入侵**。 + +倘若译者真的觉得自己有什么值得一读的见解,完全可以写在译者序或者后记里(*这样方便我直接跳过*),或者自己写一本书,而不是在别人的书里「借楼打扰」。 + +我读的译本是机械工业出版社出版的,我找到了由电子工业出版社出版,由孙宇聪翻译的译本,后者的第 27 章的小节只有原文出现过的两段,没有多余的内容。孙译本也没有翻译插图,文字段落中使用的名称也是英文原文,术语是统一的。此外,机械工业出版社的译本中其他的很多大大小小的问题,在孙译本里都没有出现,比如第 34 章《The Missing Chapter》被我手上的译本译作「细节决定成败」,我真的哭笑不得,孙译本的翻译是「拾遗」,不一定是最好的,但至少和原文不至于毫无关联。 + +总之,如果你想读这本书,我推荐直接读《Clean Architecture》英文原本;如果要读译本,请选择电子工业出版社的孙宇聪的译本,绝对不要读机械工业出版社这四个译者译出来的垃圾译本。 + +--- + +## + -- cgit v1.2.3