关于重构(refactory)

作者:admin 发布时间:July 8, 2011 分类:软件开发

项目暂告段落,写一些关于refactory的想法,算是总结。

一个项目,就算有很好的设计,从某个层次,比如一个小模块,也总是从draft开始的。更不必提agile流程下的代码实践,从最快的、能恰好满足当前需求的实现入手,而不必过于花心思在比如性能、可重用等等方面的纠结,但是有洁癖的程序员、或者“高瞻远瞩”的设计者很难做到这一点。其实换个角度,这些本身也是一种需求,但是对于需求,还是让这些“需求”来的时候再仔细考虑吧。这点上,比较喜欢引用的一句话就是:如果你被骗一次,那不是你的错, 如果你被骗两次,那就是你的问题了。对于一个模块,你忽然发现可重用,你却没有设计合理的接口,那也不是你的错。但是等下下次又有类似需求的时候,希望已经有良好的接口在那里了。所以对于refactory的第一原则应该就是: “if it works, don't fix it.” 这里work不仅仅指代码或者模块能工作(functionality),还有其他的含义,比如重用性,维护性等等。只有在不work的时候,我们的fix也更加有的放矢。

但是这点必须要有完备的测试,特别是自动测试,来作为保障。如果没有完备的测试,每一次的refactory都可能留下隐患。而自动测试,则能鼓励程序员在需要refactory的轻装上阵,很少有重复劳动。

其实以上两点,都是基于效率的考虑:不做无用的需求,不重复劳动,专注于最有产出的事情。而随着项目的推进,当发现从最初的一堆draft,慢慢的变成一个个接口明确的小模块,而且测试完备,这真的是一件愉快的事情。

标签: 开发 重构

仅有一条评论 »

  1. 4Smeu9 irrpnjtxiriq, [url=http://lcsceilkqkuw.com/]lcsceilkqkuw[/url], [link=http://mncmpuhudeuu.com/]mncmpuhudeuu[/link], http://jppplhziqiml.com/

添加新评论 »