diff options
| author | eltrac <hi@eltr.ac> | 2026-04-20 17:54:33 +0800 |
|---|---|---|
| committer | eltrac <hi@eltr.ac> | 2026-04-20 17:54:33 +0800 |
| commit | 270e6dd56a2eea2cd541b8af9367cb181169dbec (patch) | |
| tree | f312972f83fd527dfbda17cc3982c4be91b7d4d6 /content/library | |
| parent | 74906be24efa6bb2e116ae0cde35d26908b1ab49 (diff) | |
[library] update draft
add metadata, fix typo and add two new headings
Diffstat (limited to 'content/library')
| -rw-r--r-- | content/library/2026/clean-architecture.md | 28 |
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》的译名是《代码整洁之道》。 + --- -## +## 架构分为策略和实现细节 + +## 尽可能推迟细节决策 + +## 依赖关系和可维护性 |
