易于修改原则
这个月来,我已经在从事《程序员修炼之道》第二版的翻译。到现在已经超过十万字,几乎是全书的一半了。
很难很累。翻译和阅读是两码事,就算自己理解了,想说清楚也是很难的。何况有些句子理解起来摸棱两可,想理解透彻也不是那么容易的事。毕竟是别人的思想,凡思想都非真理,没有太多对错可言,翻译者只求能准确表达。
不过越是深入,越是觉得自己在做一件伟大的事。这本书一如二十年前的那一版一样,字字珠玑。能给无数程序员引路。有些道理过去讲得不甚透彻的,经过数十年的历练,作者看得更通透了。
比如,有一条过去没有提及的原则,在这一版中放在了重中之重的位置。那就是:ETC 原则,Easier To Change ,易于修改。
我当然明白,易于修改非常重要。但从未想过,它可以是一切原则的基石。
在上一版中,作者言必提 DRY 原则,Don't Repeat Yourself ,不要重复。我觉得说得还不够好,我自己更喜欢 Unix 编程艺术中的提法 SPOT :Single Point Of Truth ,唯一真理。但这次,DRY 被放在了一个次要的位置,和本书提出的其他原则一起,围绕着一个更基本的原则谈起。为什么不能重复?为什么真理只应写在一个地方?
因为,我们所作的一切,都是为了更容易修改。
当真理只存在一个地方,那么在需要修改它的时候,就只需要改动一处,更容易修改了。
为什么需要解耦模块。因为耦合在一起的模块很难修改。在修改时,要么你要花时间搞清楚关联之处都在哪些地方;要么你不去搞清楚,只改一处,结果出了问题,再花时间弄明白问题出在哪里,有什么牵连之处忘记了。解耦之后,可以放心的只修改一处就够了,更容易修改。
为什么我们要给函数名,变量名取个好名字。取名为什么是很重要的事?因为好的名字方便阅读,而修改的前提就是阅读。好的名字让修改更容易。
……
说到取名,在翻译每章时,我会在作者篇头引用的名言翻译上颇费一番功夫。仔细查找出处,推敲为什么本章要引用这句话。许多句子我过去从没了解过,搜索下去会被原著所吸引。
前天翻到作者引用《地海传奇》中的一句话,"To light a candle is to cast a shadow" ,我引用了蔡美玲的译文 “点亮一盏烛光,便投出一道阴影。” ,编辑说 点亮 ... 烛光 有点语法问题,建议改成 烛火。我在推敲之余,对书产生了兴趣,在 kindle 上买了一套。结果读了两页就停不下来。周末一口气读完了前三本。
名字为什么重要?《地海传奇》能给我们答案 :)
Comments
Posted by: EOS. | (18) December 25, 2019 11:45 AM
Posted by: olive | (17) December 21, 2019 09:51 AM
Posted by: olive | (16) December 21, 2019 08:37 AM
Posted by: olive | (15) December 21, 2019 08:36 AM
Posted by: Cloud | (14) December 9, 2019 08:07 PM
Posted by: Cloud | (13) December 9, 2019 06:20 PM
Posted by: seekyao | (12) December 8, 2019 07:45 AM
Posted by: 前进轮胎 | (11) December 5, 2019 09:27 AM
Posted by: denglitong | (10) December 4, 2019 10:48 PM
Posted by: 杨博 | (9) December 4, 2019 04:33 PM
Posted by: 胖胖 | (8) December 3, 2019 09:59 AM
Posted by: heibor | (7) December 3, 2019 09:26 AM
Posted by: Wu | (6) December 2, 2019 04:21 PM
Posted by: 小无路 | (5) December 2, 2019 12:12 AM
Posted by: ThomasLau | (4) November 24, 2019 12:43 PM
Posted by: anders0913 | (3) November 23, 2019 08:59 PM
Posted by: 申公豹 | (2) November 19, 2019 09:48 AM
Posted by: 大头龙仔 | (1) November 18, 2019 08:43 AM