发这篇文章是从看到一篇《也谈”轮子理论”》引起的,作者的观点是说,如果真的像轮子理论一样,那么这个世界上就没有了新技术的诞生。那是不是轮子理论本身的局限性呢?我个人有着不同的见解。
轮子理论这个的概念,我第一次看到是在一本图灵的反模式书上看到的,其中有一条反模式解决方案叫做不要重复发明轮子,就是说当我们做一个项目,或者需要一个技术的解决方案时,我们第一步不是去想,我们要如何解决这个问题,而是应该先去搜索资料,找到这个问题曾经有什么解决方案或者好的方法,我们把这个叫做“轮子理论”。
作者的观点是如果真的轮子理论广泛试用,那么当初有了JAVA为什么还需要.NET,有了Struts为什么还需要有Webwork,有了一个NHibernate为什么还要搞出一个LINQ出来,当初学马克思主义哲学的时候有这样一句话,叫马克思主义哲学是与时俱进的。当然,轮子理论也是一样。
究竟什么是轮子理论?
诚然,如果单纯地做应用,做商业项目,轮子理论是广泛适用的。项目周期短,时间紧,当你发明轮子结束后,便会发现用户已经催着你要项目了。而你的整个汽车还只有一个轮子而已。完蛋.........
我对轮子理论做了这样一个总结。轮子理论是先找到轮子,然后学会如何使用轮子,然后把这个轮子针对你的汽车做出适当的改善,当有一天发现你的轮子已经不再适用,或者说已经没有改善价值的时候,算了,抛弃轮子,开始发明你的心轮子。这才是轮子理论一个循序渐进的步骤!
说说微软的.NET Framework,当初Sun公司JAVA的如火如荼,微软并没有在第一时间推出.NET,而是在八年之后,当他发现了JAVA的很多弊端之后,开学效率低,框架没有业界标准,JVM效率偏低。于是才重新发明出了.NET这个大轮子。试想,如果微软在第一时刻不去看轮子,而马上就去发明新轮子,那今天的.NET会是如何?
废话说了一大堆,只是对每个质疑轮子理论的人提个建议,对于每个人来说,轮子理论还是普遍使用的,关键在于我们要理解一个正确的轮子理论模型!
08年过去,大学也即将毕业,年后要开始自己的第一份工作了,基于WorkFlow的开发,还真是个全新的挑战呢。总之,新年继续专注.NET,梦想不变!