Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » 科技英语  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 “重构”的词源学探索
yuhuang



CJSDN高级会员


发贴: 212
于 2004-01-14 12:49 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
第一次在纸媒体上使用“重构”这个词,是在2001年底。我还记得2001年12月的《程序员》杂志,黑色的封面,技术专题的名字就叫“代码重构”。在那之前,refactoring这个词并没有一个统一的翻译,曾被用过的译词包括重整、重组、重构……等等。自从《程序员》的技术专题和potian的系列文章介绍重构技术之后,refactoring的中文译词基本上就定为“重构”。两年多的时间过去,这个译词应该说是得到了读者的认可,并没有受到太多的置疑,这多半也是因为此前并没有一个统一的标准。

但是在我心里其实一直有个淡淡的隐忧:“重构”这个词显然是受到了西方文论一以贯之的影响。在那篇《重构之维》中我曾经提到,中国第一次使用这个词是翻译哈贝马斯的“reconstruction”,而reconstruction的德文原词应该是“nachkonstruktion”——后构。也就是说,“重构”这个汉语词汇的诞生就多少伴随着一点误会。那么,在Martin Fowler这里,“重构”是否能够非常准确地代表refactoring的意涵?这是我一直担心着的。

2003年9月10日,Martin Fowler的weblog:“重构的词源学探索”(Etymology Of Refactoring)。按照Fowler原本的理解,“refactoring”出自数学中的“因式分解”(factoring):通过因式分解,你可以让算术式更容易理解,而不改变其结果;通过refactoring,你也可以让代码更容易理解,而不改变其行为。其实我很喜欢Fowler的这个观点。如果把因式分解看作对算术式的一次重新构造,“重构”这个译词也还算差强人意。

但是在那篇weblog中,Martin Fowler提到:最初提出重构理论的William Opdyke其实并不是这么想的。这个故事要追溯到Opdyke在伊利诺斯大学时与他的导师Ralph Johnson(GoF之一)的一次交谈,当时他们谈到了时下流行的“软件工厂”(software factory)。在他们看来,软件开发超越了制造业,更类似于传统工业中的设计过程。因此对于他们正在研究的理论,他们也想用一个词来超越“软件工厂”。于是,他们选择了一个富有后现代风格的词汇:software refactory。

这就是“refactoring”真正的词源:对软件的渐进式设计,对软件工厂的嘲讽和超越。不得不承认,用“重构”来代表这个词也只能是一个误会。不过,考虑到后现代主义者在reconstruction口号之下对工业化和现代性的反动,我倒觉得我们的“重构”多少算得一个美丽的(或者说,歪打正着的)误会。

摘自:http://www.china-pub.com/computers/bbs/addfollow.asp?id=26289&rootid=2&boardid=1



作者 Re:“重构”的词源学探索 [Re:yuhuang]
floater

Java Jedi

总版主


发贴: 3233
于 2004-01-15 14:49 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list

2003年9月10日,Martin Fowler的weblog:“重构的词源学探索”(Etymology Of Refactoring)。按照Fowler原本的理解,“refactoring”出自数学中的“因式分解”(factoring):通过因式分解,你可以让算术式更容易理解,而不改变其结果;通过refactoring,你也可以让代码更容易理解,而不改变其行为。其实我很喜欢Fowler的这个观点。如果把因式分解看作对算术式的一次重新构造,“重构”这个译词也还算差强人意。

sigh, the beauty is just hard to translate.



"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
- Martin Fowler, Refactoring - Improving the Design of Existing Code

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923