• 2004-06-05

    没有工具的重构

    Tag:向上走

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/dreamhead-logs/206804.html

    近来的业余时间是在Linux上用vi写着C程序。
    我的开发习惯是先把功能完成,而不必理会代码是否优美,内在结构是否合理,因为有重构在后面等着。
    这习惯完全是长时间使用Java IDE被惯出来的,毕竟Java IDE的重构功能实在太方便了。至少在常用的几项重构,比如改名、比如提取方法,无论是表现一般的JBuilder、表现尚可的Eclipse都能尽职尽责,更不用说表现优异的IntelliJ IDEA了。

    带着同样的习惯来到Linux上,打开vi,写着C程序。拼凑完功能,准备招手重构时,忽然发现原有的习惯并不适合这个新的环境。一个变量名,我只能一路手工清扫过去,然后靠编译信息确定是否还有残留余孽。幸好只是一个小程序,否则估计我只能罢手和吐血二者之间抉择。

    忽然发现,原来重构已经成为我开发生活中不可或缺的一部分。偶尔也想,那些没有重构的日子我是怎样度过的。

    感谢Martin Flower的那本《refactoring》将重构的理念送入我的大脑。唯一感觉对不起这本书的是,虽然我早早就拥有了这本书,但迄今为止,我依然未能将全部的重构手法读完。因为在我眼中,了解了重构的意义之后,这本书最有价值的就是那些Bad Smell了。发现问题远要比解决问题来得更加困难,只要能嗅到Bad Smell,如何重构就是个人游戏了。

    Martin Flower写这本书的时候,重构工具还不是很丰富,按照书中介绍的重构手法一步步走下去,虽然可行,却也费神。时过境迁,随着人们越来越重视重构,重构渐渐成为开发人员的基本技能,于是,重构工具也如雨后春笋一般一个个冒了出来。作为开发人员好助手的IDE自然也不甘落后,这一次,Java IDE终于走在微软的Visual Studio之前。在Java程序员享受着重构的便利之时,Windows平台的程序员只有眼巴巴羡慕的份。微软当然不会视而不见,据说那个叫Whidbey的家伙将支持重构。

    正是IDE们的精彩表现,完成一个重构之后,我甚至可以放心大胆不去运行单元测试,这就是自动化工具带来的便利,比起手工重构,不知节省了多少时间和精力。
    手工重构?不,不到万不得已,我不愿意。

    分享到:

    历史上的今天:

    环境的力量 2009-06-05
    引用地址:

    评论

  • "了解了重构的意义之后,这本书最有价值的就是那些Bad Smell了。发现问题远要比解决问题来得更加困难,只要能嗅到Bad Smell,如何重构就是个人游戏了。"

    呵呵,我也是这样想的!看重构最大的收获不是让我获得敏锐的嗅觉,而是培养敏锐嗅觉的意识!
  • 我也是学计算机的,对编程很感兴趣!希望大虾能到我的BLOG来指点指点!