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