宾's profileBrian的窝PhotosBlogListsMore ![]() | Help |
《JUnit Recipes》中文版评述(附非官方补丁sp1)看过的国内翻译的技术书日渐增多,总结出了点经验。在我看来,翻译技术书有三个层次——对原作涉及的知识有基本的认识乃是第一层,能读懂原作是第二层,读懂原作并能以流畅的中文转述是第三层。翻译的时候如做到第一层,则译出来的东西基本不错,也就是“信”的水平。做到第二层,则翻译的作品不会出大的技术问题,即“达”的水平。做到第三层,则译作不仅能正确表达原作,且文笔优美,也就是“雅”的水平。读这样的作品不仅可以学得知识,更可使精神获益。 “雅”的作品并不多见,印象中邓辉译的《敏捷软件开发》是一本。“达”的作品较多,比如崔凯的《测试驱动开发:实用指南》。在“达”以下的当然也有,我这里就不举例了。至于这本《JR》译得如何,我不作评论,大家看过后面的补丁自有评价。但对我来说,我不认为把Dr. Dobbs Journal当作博士的人有多高的编程水平,更不相信将Green bar译作“绿吧”的人真的看到过JUnit的绿色进度条!!
最后对这本书的相关责任人,我有些话要说: To 博文视点—— 首先,感谢你们这些年来为国内引进了这么多优秀的技术书,让我们可以了解国外最新的技术成果。但感谢的同时,我希望你们能真正地把图书特别是翻译图书的质量放在必要的位置。毕竟这些技术书所面向的读者,大部分是兜里并不太有钱的程序员甚至学生。我们选书的时候,看重的不仅仅是“×××作序”和“web2.0云云”的促销语,更重要的是书本身的内容。请务必认真对待这些翻译的作品,这不仅是对读者的尊重,对原作者的尊重,更是对你们自己的尊重! To三位译者之一的“绿吧”先生—— 是的,我知道你们是一起翻译的这本书,因为我看到你们对test fixture这个基本用词有“固定器”(P16页)、“装置”(P77页)、“模块”(P73页)、“实体”(P212页)等数种不同的译法-_-!!!。但我不知道哪一位负责翻译第七章,所以也只好以你的翻译来称呼你。我必须告诉你,我不喜欢这个“吧”的翻译。“green bar”里的bar表示条状物,而非酒吧的吧。推荐你有空的时候逛逛wiki和豆瓣,相信对你会有帮助。
附录:非官方补丁sp1(涵盖第一到七章)======================================= -1、Page44 para2(表示44页第2中文自然段,下同) 原译作:6. 现在,测试只涉及接口和一些抽象的测试方法,。。。 建议作:原文是:the interface and other methods in the abstract test case。。测试方法不会是抽象的,所以这里这样翻译可能更好——只包含接口与抽象测试类中其他的方法。 -2、Page59 para1 原译作:屏蔽的方法。。。 建议作:建议加上原文(stub method) -3、Page60 para3 原译作:那么类也会自动察觉,并创建一个默认的。 建议作:provides a sensible default implementation。。疑误,应作——提供一个合理的默认实现。 -4、Page70 para2 原译作:可能会建立“在线银行模型开发人员测试”和“在线银行模型用户测试”等不同的项目 建议作:项目名可以不用翻译,。。 -5、Page78 para4 原译作:将其声明成受保护的而不是私有的 建议作:“受保护”应作“继承” -6、Page97 para3 原译作:整个一段 建议作:直接读原文吧。其实原文这里也不太容易懂,不能怪译者。
-7、Page103 para2 原译作:汇聚成特定的代码格局 建议作:虽然我不知道code layout有什么专业的译法,但请把原文标上。 -8、Page108 para2 原译作:你可以直接将RecursiveTestSuite换成其他工具,开源工具就是这么用的。 建议作:开源工具不是让你直接换别的工具,而是让你修改工具的代码。(我无法原谅这个错误,容易产生误导!) -9、Page111 para3 原译作:同时保证测试网的安全性 建议作:没有测试网的概念,别乱猜。原文是——without OrderedTestSuite you would not be able to perform this delicate code surgery incrementally *with the tests as a safety net*。 -10、Page116 para5 原译作:因为这避免了重复的java代码 建议作:原文——This makes adding new test cases simpler because it avoids rebuilding Java code.。。应作“重编译java代码”。 -11、Page119 para3 原译作:比如展开的文件 建议作:flat file,平面文件,意指一种包含没有相对关系结构的记录的文件。(再一次重复,请把原文注上) -12、Page112 para4 原译作:另外一个好的习惯是, 建议作:practice也许译作“实践”更专业。
-13、Page134 para2 原译作:需要遵从的转换如下: 建议作:原文是convention,非convertion,当作“规范”,谢谢。 -14、Page138 para2 原译作:一旦你确定了数据仓库的位置 建议作:数据仓库有特定的概念,换个词吧。 -15、Page142 para1 原译作:JUnitPP两年前出现于Dobbs Jounal博士的文章中 建议作:Dr. Dobbs Jounal是一份很有名的技术类杂志。 -16、Page142 para2 原译作:相对于Test Runner被装载的目录 建议作:where Test Runner launched。。 -17、Page144 para4 原译作:在设计范例的书中。。。 建议作:也许把Design Pattern译成“设计模式”会减少你的非内行性。 -18、Page146 para2 原译作:那个实现可以在Junit的扩展系统中找到。 建议作:Junit-addons是书中提及的一个项目的名字,请不要翻译。 -19、Page152 para1 原译作:来欺骗测试代码 建议作:买你们译的书,我也有被欺骗的感觉。 -20、Page160 para6 原译作:下面是你的buildfile可能的样子 建议作:经过上面那么多错误的考验,看到这里我已经不那么吃惊了。我知道你没有用过ant,我赌10块钱。 -21、Page168 para1 原译作:一种是用著名的基于Swing和AWT的“绿吧”界面 建议作:green bar是表示测试通过的绿色进度条。 -22、Page168 para1 原译作:JUnit在盒子外提供的报告 建议作:out of the box 意指“现有的”
-23、Page168 para4 原译作:Maven是一个创建工具 建议作:建议作“构建工具”。
N、前六章里还包含至少6处打字错误,比如from变成form,html变作htmt等。读时请注意。 整理Feed之后把订的Feed整理了一遍,从原先的100+删到68个。中文的,英文的一起放到google reader里。有看过博客阅读器的排名,效率方面google reader排第一,今天一用发现此言不虚。界面简单实用,功能也很容易找。虽没有鲜果的右键菜单,不过拖动的处理反而更有效。唯一美中不足的是firefox3不支持all in one gesture插件,而我用的替代品fireGestures对google reader一类有嵌套的页面支持的不好,用右键向上滑,总翻不到最上页。期待all in one早出更新。 花了一个晚上和一个早晨的时间,终于把想整理的两件东西(邮件和rss订阅)弄好了。可惜cnbeta不能configure,不然下一个目标肯定是它。说实在的,用这三个东西看消息是件累事。保守估计,每天需要处理的文章在50篇以上。一天不读,隔一天再看就上百了。一个月不读,基本上可以跳过不读了。怀疑自己已经沾染上“信息强迫症”,一天不读这些消息感觉就有点不对劲。曾有一段时间,每天花3个小时读rss,现在看来其实是很浪费时间的。细想来,其实得到的知识无非是哪家公司上市了,哪家公司财政不乐观了,又有哪家公司被并了,于我都没有大的关系,看来取舍之间还真的要一点智慧a。 整理邮件之后终于把邮件整理完毕。从06年压倒现在所有的,yahoo的,gmail的,hotmail的,126的,全部的,该看的看了,该删的删了,该分类的分类了,还有暂时不读也不想删的拖到临时文件夹里了。多亏了Live Mail,不仅通吃所有我用的电邮(当然包括微软自家的hotmail,呵呵),而且界面和可用性做的都很好。除了不能撤销删除,我想要的功能它基本上都有了,确实不错。 虽然有这么好用的邮件处理软件,可还是活生生地花了我5个钟头的时间处理这些压了两年多的邮件。拜我订阅的几个电子杂志和论坛所赐,以前每次打开gmail都是满满的未读邮件。开始倒也不觉得什么,毕竟gmail推的就是容量大不需删邮件。直等到未读数目过千,我才开始觉得有必要处理下。可我天生的懒人一个,加上能忍就忍的性格,堆积到两年以后的今天数目已经多到无法可想(勿以恶小而为之,呜呼,古人诚不我欺),于是动手。。。 先在live mail里建了几个归类文件夹——Event类、IT类、Notification类、Personal类、Webclip类、Work类、Other类,当然还有to read类收容暂不想管的邮件。在每个文件夹名前面都加了一个@,方便与软件的默认文件夹区分。列好类后,开始一份一份地翻未读邮件。1,2,3。。。一直翻了50多封也没见滚动条动,于是心一横,用搜索框找那些实在读来头痛的邮件,sdn的、microsoft的、ithome的、javaworld的、oreilly的、udaily的、apple的,七七八八的全部列出来,全选,delte,这个世界干净了(不少)。 接下来归类剩下的邮件。发现两年里的生活也部分地融入了我的邮件。比如家里发来的邮件,考研时候的,节日的。又比如和foolishpubby互发的music邮件。当然还有其他的种种。今天晚上才知道是多么念旧的人,连一份邮件也要在删与不删之间犹豫。我想有机会的话,应该把保留下来的邮件forward给发件人,也许他们也会想起些什么。 经过整理,最后留下大概两百来封归好类的邮件(live mail不能统计所有文件夹的邮件数目,自己也懒得去做加法,所以无法统计具体数字)。其中包含了来自37个不同网站的注册邮件(真没想到两年里注册了这么多,当然37肯定只是一个保守的数字,因为很多网站注册不需要邮箱)。第一封注册邮件当然是gmail啦,thanks for opening a Gmail account啥的。第二封就是豆瓣了,“亲爱的某某,欢迎加入豆瓣!”,无限感慨。另外不能不提的是那些垃圾邮件,内容从培训到药物无奇不有。其中更有一类是枚举找到我的邮箱地址,因为它的邮件接收人里还有whurn,whumk之类的,狂汗。。。 正待结束此文,gtalk又提示新邮到来。一看名字,明白是某个未subscribe的论坛消息提示。于是以最快速度删之,又去网站unsubscribe,于是这个世界真的干净了。。。 |
|
|