早已耳闻《Effective Java》大名,是众多Java程序员进阶的必备书籍,由Google的Java架构师Joshua Bloch所著,讲述Java技术中的78条“最佳实践”。再加上本书又有Javaeye高人YuLimin参与翻译,故在Amazon上买了这本书,今天到货。
怀着激动的心情开始从前往后读这本书,可是刚开始阅读便发现一些句子翻译的不尽理想。然后在网上下载英文版电子书来核实,果然发现有不妥之处。比如以下这一条。
英文原版第二章Creating and Destroying Objects中有这样一句:
" A class can provide its clients with static factory methods instead of,or in addition to,constructors.Providing a static factory method instead of a public constructor has both advantages and disadvantages. "
本书中翻译结果为:
“ 类可以通过静态方法来提供它的客户端,而不是通过构造器。提供静态工厂方法而不是公共构造器,这样做有几大优势。”
从原文分析,作者本意并不是静态方法和构造器只存其一,而是说可以利用静态方法代替构造器,或者二者共存。另外,原文中明显有“ both advantages and disadvantages”这样的语句,怎么能一概而论说“有几大优势”呢?
我们再来看看潘爱民先生所译的《Effective Java》第一版中这一段的翻译:
“ 类可以为它的客户提供一些静态方法,来替代构造函数,或者同时也提供一些构造函数。用静态方法来代替公有的构造函数,既有好处,也有不足之处。”
虽说本书只翻了不到30页,发现有一些翻译不甚流畅,阅读起来有些吃力。
这让我坚定了阅读英文原版的想法!毕竟经典之作是不可不读的。
不过,没买这本书的时候看到高人YuLimin便在自己的博客上开了
本书的勘误表。 碰到翻译勘误的时候可以报告,同时查阅其他勘误。