`
hnylj
  • 浏览: 211224 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

谈谈“不要重复发明轮子”

阅读更多

只身在他乡,常常想起我的父亲,在我们当地他是出名的木匠师傅,一手掌脉设计建造了许多建筑物,留下了很多赞誉,不过现在人年龄也大了,就没有当木匠师傅了。他曾经给我说过,在工程领域,文官永远要输给武将。其意思就是说,一个纸上谈兵的人永远要输给一个不断实践的人。这样的道理或许有些绝对,也不会有人不懂,也许是因为从小就在这样的氛围中耳闻目染,所以我一直都是一个乐于动手实践的人。

 

在软件工程领域,有一句著名的话,叫做“Don't Reinvent the Wheel”--不要重复发明轮子。这句话说得非常经典,也非常有道理。但在生活中,我就发现时常有些人常常被这些名言所束缚,其实我觉得“不要重复发明轮子”也只是站在某一个角度告诉IT人员的一个道理,如果将其奉为不可叛逆的金科玉律,就会束缚我们的思维,阻碍我们的步伐。

 

我是一名从事Java相关开发工作的IT人员,回忆当初自己自学java走过的路,我戏剧性地发现自己就是一个典型的在不断重复发明轮子的人。一个东西别人已经写过了,我将其下载下来,理解他的思路,重新自己再写一遍,或者再改造一遍,通过这个过程,我有很迅速的提高和积累,收获真的不是一点两点。

 

在论坛中,当一些热爱软件开发的同行们贴出一个自己写的东西,下面的留言总会出现,“又是一个重复的轮子”之类的跟帖,但我发现更多的留言是热心指出“如何如何。。。会更好”之类的跟贴,后一种跟贴是抱着一种欣赏交流的态度,非常好,因为我也是这样。

 

试想一下,如果你写了一个数据库连接池的小组件,你将对jdbc有深刻的认识;如果你写了一个IoC容器,你将对各种设计模式,反射机制等有更深的认识;如果你写了一个缓存框架,你将至少会在软件性能优化上加入自己的思考;如果你写了一个js library,你将对js的使用有更深刻的体会。如果......。这些工作永远比每天写几个Ation,几个service,几个DAO让我们提高积累得更快,从而也更清楚地认识自己真正匮乏的是什么。

 

我们不追求一定要让自己的小组件大范围推广,只因为我们还有几分对软件开发的热情,我们乐于学习,愿意研究,我们愿意付出一点时间来不断提高自己,因为这样不仅能让人体会到作为一个男人的那种充满斗志的“孤芳自赏”,也更让我们变得更有价值和竞争力。你觉得呢?

 

 

分享到:
评论
64 楼 chenkan2000 2010-06-29  
让人不能接受的是:发明了一个不怎么样轮子强迫别人使用,实际上还存在可以免费使用的更好的轮子。
63 楼 warison_2008 2010-06-29  
很是支持发明,起码只有造出来才晓得是重复的轮子嘛
62 楼 likeblood 2010-06-28  
人家说的是不要重复发明 可没说不能重复制造
61 楼 davepkxxx 2010-06-25  
知行合一
才是真理
60 楼 333sunshine 2010-06-25  
"Don't Reinvent the Wheel"

Reinvent  的翻译为“(在不知他人以发明的情况下)从复发明,彻底改造,从新使用”
关键是:在不知道别人发明的前提下。

但是如果已经知道别人的发明,研究后再造,那么这就叫做创新。引用牛顿的话来说是:站在巨人的肩膀上
59 楼 qn_lf 2010-06-18  
“不要重复发明轮子”完全同意,但可以学习轮子的制作过程,比如重新写一遍 哈哈
58 楼 pengzhoushuo 2010-06-13  
  有些组件及模块确实已经有开源组件可替代,但开源不等于免费,特别是你在商业中应用时还是需要遵循开源协议的各种限制条款的,只是国内知识产权意识相对落后,暂时未暴露出问题。另外,任何一个开发人员都不应该被剥夺或自愿放弃发明轮子的权利。
57 楼 cisumer 2010-06-13  
应该把“发明轮子”和“制造轮子”分开了看,一般而言我们讨论的“不要重复发明轮子”其实是“不要重复制造轮子”,轮子肯定是要重复制造的,但是发明只有一次。
56 楼 IcedCoffee 2010-06-08  
我觉得不重复发明轮子是指在开发过程中,如果有现成的就应该拿来用,而不是自己写一个功能一样的。。。

而学习中,重复发明轮子是必要的。这样才能了解轮子的结构嘛。。。
55 楼 haiyangyiba 2010-05-29  
重复造轮子只会是有思想的人干的事情,造出的轮子的质量的好坏也是能力的体现。
我觉得重复造轮子肯定是在别人现有的东西下,自个又感觉哪里不好,在理解别人思维的情况下,加上自己的理解创新,出的东西。

重复造轮子是一种学习,也是一种创新。且不论轮子质量。
54 楼 sulifeng 2010-05-28  
重新发明轮子不值得鼓励,但是重新发明飞机发动机、重新发明汽车发动机、重新发明cpu就很有必要了。。。。。。
53 楼 wu_quanyin 2010-05-28  
模仿是创新之父
52 楼 hong879113 2010-05-28  
szwe 写道
这是一个企业盈利和个人发展的矛盾问题。
如果老板给你无限多的时间,你自己写出来一套SSH也没问题。
但事实上,通常老板给你的时间根本不够,你甚至会被迫加班,你不如把写出来SSH的时间花在学习如何使用上。


是不是有些太面向“需求”啦呢?那要是需要使用一个新的东西怎么办? 我现在就在了解ssh这个大轮子的原理,我想改造的话比用他们更有效果~~
51 楼 makemyownlife 2010-05-28  
‘重复’二字要看怎么理解,要是对于喜欢研究技术的人来说,画轮子一点都不重复,对自己反而更有裨益。
50 楼 szwe 2010-05-28  
这是一个企业盈利和个人发展的矛盾问题。
如果老板给你无限多的时间,你自己写出来一套SSH也没问题。
但事实上,通常老板给你的时间根本不够,你甚至会被迫加班,你不如把写出来SSH的时间花在学习如何使用上。
49 楼 七月十五 2010-05-27  
学习造轮子,可以理解轮子的原理,更好的选择轮子,当然也可以更好的改造轮子,组装起来的车子,更加精密,更加有高速,更加强健。
48 楼 bcccs 2010-05-27  
<div class="quote_title">hnylj 写道</div>
<div class="quote_div">
<p>只身在他乡,常常想起我的父亲,在我们当地他是出名的木匠师傅,一手掌脉设计建造了许多建筑物,留下了很多赞誉,不过现在人年龄也大了,就没有当木匠师傅了。他曾经给我说过,在工程领域,文官永远要输给武将。其意思就是说,一个纸上谈兵的人永远要输给一个不断实践的人。这样的道理或许有些绝对,也不会有人不懂,也许是因为从小就在这样的氛围中耳闻目染,所以我一直都是一个乐于动手实践的人。</p>
<p> </p>
<p>在软件工程领域,有一句著名的话,叫做“Don't Reinvent the Wheel”--不要重复发明轮子。这句话说得非常经典,也非常有道理。但在生活中,我就发现时常有些人常常被这些名言所束缚,其实我觉得“不要重复发明轮子”也只是站在某一个角度告诉IT人员的一个道理,如果将其奉为不可叛逆的金科玉律,就会束缚我们的思维,阻碍我们的步伐。</p>
<p> </p>
<p>我是一名从事Java相关开发工作的IT人员,回忆当初自己自学java走过的路,我戏剧性地发现自己就是一个典型的在不断重复发明轮子的人。一个东西别人已经写过了,我将其下载下来,理解他的思路,重新自己再写一遍,或者再改造一遍,通过这个过程,我有很迅速的提高和积累,收获真的不是一点两点。</p>
<p> </p>
<p>在论坛中,当一些热爱软件开发的同行们贴出一个自己写的东西,下面的留言总会出现,“又是一个重复的轮子”之类的跟帖,但我发现更多的留言是热心指出“如何如何。。。会更好”之类的跟贴,后一种跟贴是抱着一种欣赏交流的态度,非常好,因为我也是这样。</p>
<p> </p>
<p>试想一下,如果你写了一个数据库连接池的小组件,你将对jdbc有深刻的认识;如果你写了一个IoC容器,你将对各种设计模式,反射机制等有更深的认识;如果你写了一个缓存框架,你将至少会在软件性能优化上加入自己的思考;如果你写了一个js library,你将对js的使用有更深刻的体会。如果......。这些工作永远比每天写几个Ation,几个service,几个DAO让我们提高积累得更快,从而也更清楚地认识自己真正匮乏的是什么。</p>
<p> </p>
<p>我们不追求一定要让自己的小组件大范围推广,只因为我们还有几分对软件开发的热情,我们乐于学习,愿意研究,我们愿意付出一点时间来不断提高自己,因为这样不仅能让人体会到作为一个男人的那种充满斗志的“孤芳自赏”,也更让我们变得更有价值和竞争力。你觉得呢?</p>
<p> </p>
<p> </p>
</div>
<p>你连这句名言的应用场景都理解错了。人家是说在工程里不要抛弃已经被证明的轮子而去自己发明,但是你业余爱好人家谁管啊,你愿意默写linux源码也随你。</p>
47 楼 xiao-qiang163 2010-05-27  
楼主文采飞扬,顶你一下
46 楼 xiaoyu211940 2010-05-27  
非常赞同lz的观点  没有试水那里知道里面究竟是什么东西
看表面我们那里知道里面的设计上的精妙
45 楼 wt8414 2010-05-27  
Rod Johnson 说"Don't Reinvent the Wheel"本意是想告诉大家“你们就不要再重复发明轮子了,我已经发明过了,用我的吧”
^_^

相关推荐

Global site tag (gtag.js) - Google Analytics