先设计后开发还是先开发后重构,一直是有争论的,不同人有不同的观点,相信大家都是折中的观点,先设计代码,然后开发,等代码到了一定的程度再重构。现实中也是这样的。但是如果我们要钻牛角尖呢,该如何。比如写PHP ,是先了解计算机理论,先了解数据结构、网络、HTTP协议,搞的滚瓜烂熟,再写代码。还是上来就是干,先写例子,再学习基础理论呢,比如闻名世界的先写“hello world!”。大学教授和辅导班就给了两条截然相反的路,同样的是先设计后重构还是先重构再设计,我认为如果是根底很深的人,对设计模式运用的炉火纯青,或者有大量的富裕时间来开发的时候,是推荐先设计再重构,先提纲挈领,然后具体实施。有些大公司,先是牛人写出框架,画出类图,然后菜鸟来填代码,就是用的这种模式。但是对于我这种菜鸟呢,一个新手呢,一看设计模式两眼一门黑的人呢,个人建议,先写代码,然后重构,这样难度更小,而且经过不断的重构也可以达到面向对象的目的。最好的路径呢,还是一边学习设计模式,一边重构,即是边设计边重构,但是又几人能达到如此境界呢。
题外话:话说程序员最好的成长方式,就是重构自己的代码和看别人的代码,看优秀的代码就是学习设计的思想,重构自己代码就是先重构后设计,是不是这个道理呢。具体如何看各位老大的意思呢,我的前一个公司就是先设计,然后员工填代码,你呢?