Posted on 2006-03-31 11:51
Terry的Blog 阅读(1043)
评论(8) 编辑 收藏 所属分类:
java语言
今天在javaeye上看到BirdGu的一席话,深有同感。
他说:“重构的目的是什么?是为了满足程序员对完美程序的不懈追求吗?不是。重构的目的是改善程序的结构,使程序有更好的可扩展性和灵活性,使得更容易扩充新功能的需要和应对需求变更;同时使程序有更好的可读性,方便其它程序员的阅读和维护。这些当然对用户是有价值的,用户为这些工作买单也是理所当然的。
有味道的代码是从哪里来的呢?
人是不完美的,自然也不可能一开始就写出完美的代码。
另一方面,代码的好坏有时并无法作出绝对的判断。设计的过程是一个权衡的过程。某种条件组合下是好的,合理的权衡,另一种条件组合下会变成不好的,不合理的权衡。因此某些条件下是好的代码,条件变化了,可能会变成不好的代码,会需要重构了。
先以最简单的方式实现功能,然后再进行重构。实质就是先提供用户最需要的东西:实现功能。再提供额外的价值,就是可扩展性,灵活性和可维护性。这也是从用户需要出发的。
那么在最开始写程序,甚至开始开发以前,我们能不能,需不需要做些工作以减少以后的重构呢?关于这个问题请看今年Jolt大奖的获奖作品:Prefactoring。“
不管做什么事情都要经常提醒自己最终的目的是什么。重构的目的不是满足代码洁癖,设计framework的目的不是练习各种Design pattern,下载电子书的目的不是收藏......