summaryrefslogtreecommitdiff
path: root/content
diff options
context:
space:
mode:
authoreltrac <hi@eltr.ac>2026-04-20 17:54:33 +0800
committereltrac <hi@eltr.ac>2026-04-20 17:54:33 +0800
commit270e6dd56a2eea2cd541b8af9367cb181169dbec (patch)
treef312972f83fd527dfbda17cc3982c4be91b7d4d6 /content
parent74906be24efa6bb2e116ae0cde35d26908b1ab49 (diff)
[library] update draft
add metadata, fix typo and add two new headings
Diffstat (limited to 'content')
-rw-r--r--content/library/2026/clean-architecture.md28
1 files changed, 17 insertions, 11 deletions
diff --git a/content/library/2026/clean-architecture.md b/content/library/2026/clean-architecture.md
index 3228f77d..0955af39 100644
--- a/content/library/2026/clean-architecture.md
+++ b/content/library/2026/clean-architecture.md
@@ -1,26 +1,26 @@
+++
-title = ''
-slug = ''
-tags = []
-authors = []
+title = '整洁架构之道'
+slug = 'clean-architecture'
+tags = ['软件','设计']
+authors = ['Robert C. Martin']
rating = 3
date = 2026-04-20T17:01:13+08:00
-cover = ''
+cover = 'https://img.eltr.ac/geedeapro/library/2026/clean-architecture/cover.png'
draft = true
toc = true
toot = ''
endnotes = ['本文第一段里,我说「很不喜欢软件架构课老师的授课风格」,其实我真正想说的是「教我软件架构的老师是个神经病」,但我想这种话放在文章开头总归不太合适。']
+++
-由于很不喜欢软件架构课老师的授课风格,所以决定完全自学。选这本书当教材可能不太合适,但的确收获颇多。眼看 Coding Agents 的趋势只增不减,就算在个人项目和自由软件项目中拒绝使用,工作时也无处可躲,我想每个程序员都需要做架构师了。如果缺乏整洁清晰的架构设计,那 Coding Agents 就只是在高速产出屎山代码而已,后续的维护只会是一场接一场燃烧 Token(或者说燃烧美元)的灾难。<!--more-->
+由于很不喜欢软件架构课老师的授课风格,所以决定完全自学。选这本书当教材可能不太合适,但的确收获颇多。眼看 Coding Agents 的趋势只增不减,就算在个人项目和自由软件项目中拒绝使用,工作时也无处可躲,我想每个程序员都需要做架构师了。如果缺乏整洁清晰的架构设计,那 Coding Agents 就只是在高速产出屎山代码而已,后续的维护只会是一场接一场燃烧 Token(或者说燃烧美元)的灾难。总之有必要关注架构问题。<!--more-->
---
## 对翻译的批评
-丑话先说在前头。书很好,但翻译是真的烂,尽管我理解翻译技术类书籍的人都是从业者而非专业译者,对翻译质量有一定容忍度,但本书的四位译者实在是缺乏最基本的素养和**素质**,我读着非常恼火。
+丑话先说在前头。书很好,但翻译是真的烂,只给这本书三分也完全是因为翻译问题。尽管我理解翻译技术类书籍的人都是从业者而非专业译者,对翻译质量有一定容忍度,但本书的四位译者实在是缺乏最基本的素养和**素质**,我读着非常恼火。
-在第 27 章《服务:宏观与微观》中,图 27.1 的文字标注全是英文,比如 Taxi Selector,这没问题,因为编写程序时就会用这些单词命名。有问题的是,在几个段落过后的图 27.2 中,只有 Taxi UI 是英文,其他的全都变成了「出租车匹配」之类的词。就算抛开出现在同一章节的两张图前后不一致不谈,同一张图里也是中英文混杂,明明是相同的元素,有的翻译了,有的却没翻译。更不谈图表之外的文字段落中使用的还是 Taxi Selector 等英文单词,读着要怎么把图表中的元素和文字段落中描述的对象联系起来?
+在第 27 章《服务:宏观与微观》中,图 27.1 的文字标注全是英文,比如 Taxi Selector,这没问题,因为编写程序时就会用这些单词命名。有问题的是,在几个段落过后的图 27.2 中,只有 Taxi UI 是英文,其他的全都变成了「出租车匹配」之类的词。就算抛开出现在同一章节的两张图前后不一致不谈,同一张图里也是中英文混杂,明明是相同的元素,有的翻译了,有的却没翻译。更不谈图表之外的文字段落中使用的还是 Taxi Selector 等英文单词,读者要怎么把图表中的元素和文字段落中描述的对象联系起来?文字段落里有的是英文原文 Taxi Selector,有的又用的是译名,比如「出租车分配」(原文是 Dispatcher,居然不是「分派器」吗?)。真不知道要干嘛。
在图 27.3 中,原本还被翻译成「小猫」的 Kitty 原样出现在图中,这次更好笑,图里写的是「kitty 查找」「kitty 来源」「kitty 匹配」。难道这个 Kitty 和前文的「小猫」是不同概念吗?做到术语统一对专业软件工程师来说不难吧?做到语言统一对译者来说也不难吧?在图 27.4 中,又出现了「小猫匹配」这个词。
@@ -34,9 +34,9 @@ endnotes = ['本文第一段里,我说「很不喜欢软件架构课老师的æ
然而在译本中,这一节有四段话。在原本应该结束的地方,译者毫无预警、肆无忌惮地把自己想写的东西紧跟着写在了译文的后面,看起来就像那些文字本来就在那个地方一样:
-> Bob 大叔的案例非常精彩,确实,……
+> Bob 大叔的案例非常精彩,确实,……*(此处省略三四段极其平庸的论述)*
-在本就不应该出现在这里的三段话的最后,译者恬不知耻地加上了「——译者注」。我想这位译者不仅英文翻译水平值得怀疑,中文理解能力也需要打一个问号。因为我非常确定,「译者注」一词中的「注」表示「注释」,而不是「正文」。在我的理解里,译者注存在的意义是**辅助读者理解文本**,如果译文没有跨文化理解问题,或者不需要交代什么背景信息,那译者注就不该写;译者注绝对不是译者对同一话题的理解或对文本的解读,更不是**对原文的入侵**。
+在本就不应该出现在这里的三段话的最后,译者恬不知耻地写上了「——译者注」。我想这位译者不仅英文翻译水平值得怀疑,中文理解能力也需要打一个问号。因为我非常确定,「译者注」一词中的「注」表示「注释」,而不是「正文」。在我的理解里,译者注存在的意义是**辅助读者理解文本**,如果译文没有跨文化理解问题,或者不需要交代什么背景信息,那译者注就不该写;译者注绝对不是译者对同一话题的理解或对文本的解读,更不是**对原文的入侵**。
倘若译者真的觉得自己有什么值得一读的见解,完全可以写在译者序或者后记里(*这样方便我直接跳过*),或者自己写一本书,而不是在别人的书里「借楼打扰」。
@@ -44,7 +44,13 @@ endnotes = ['本文第一段里,我说「很不喜欢软件架构课老师的æ
总之,如果你想读这本书,我推荐直接读《Clean Architecture》英文原本;如果要读译本,请选择电子工业出版社的孙宇聪的译本,绝对不要读机械工业出版社这四个译者译出来的垃圾译本。
+需要注意的是,我不幸读到的译本叫作《整洁架构之道》,而孙译本叫作《架构整洁之道》。前者发行年份更晚,是 2024 年发行的,更推荐的那本是 2018 年发行的,不知道是不是为了故意混淆才这样命名。我记得 Bob 大叔的另一本《Clean Code》的译名是《代码整洁之道》。
+
---
-##
+## 架构分为策略和实现细节
+
+## 尽可能推迟细节决策
+
+## 依赖关系和可维护性