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

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

阅读更多

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

 

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

 

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

 

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

 

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

 

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

 

 

分享到:
评论
24 楼 iaimstar 2010-05-27  
我觉得有点扯远了

重复造轮子 是说不要在已经成熟的技术上浪费精力,把精力用在真正 需要解决的问题上

lz说的只不过是学习和提高java水平 的 方法之一

和不要重复造轮子这句话 一毛钱干系都没有啊

23 楼 mp_juan 2010-05-27  
赞同楼主,其实无所谓重新发明轮子,关键的是你在做的过程中可以收获很多东西,往往我们自己的水平处在一个瓶颈期,如果冲不过这个瓶颈,就麻烦了
22 楼 googya 2010-05-27  
    你所说的,我觉得并非真正意义上的重新造轮子,你所注重的是学习的过程,是重复别人写过的东西、体会别人的思想的过程。这是必要的。
    我认为,重复造轮子应该在一种生产环境下提出来的。在该环境下,如果有现成的东西,为了提高生产力,直接拿过来用就可以了,没有必要自己重新设计一套。如果现成的东西不符合你的要求,重新设计一个或者对现有的进行完善,这就是创新了。
21 楼 cpdw 2010-05-27  
好多人都是觉得自己很NB,对别人的东西都不屑一顾,其实他自己可能写个Hello World都会报错,支持LZ
20 楼 jorwen_fang 2010-05-27  
重复发明也是种学习

而且有时候,一辆车子要一些特别的轮子, 别的都不适合,二次改造也麻烦,干脆重新发明个适合的
19 楼 murainwood 2010-05-26  
改进轮子的话,还是很不错的。
18 楼 kjj 2010-05-26  
楼主可能理解偏激了,如前面老兄所言,这句话是给实践中来说的,至于学习,你爱怎么搞那是习惯和方式问题,但有人把发明轮子当本事,这就不对了............
17 楼 lishuaibt 2010-05-26  
重新造轮子 是为了先看看别人的轮子怎么造的 然后造自己更好的轮子  所以

顶LZ
16 楼 chunquedong 2010-05-26  
没有完美的轮子,轮子会越造越好的。
15 楼 freish 2010-05-26  
开发软件只是混饭吃,仅此而已,如果重复造轮子不影响吃饭,造一造也无妨
14 楼 gundumw100 2010-05-26  
非常同意楼主。重复发明轮子实际在提高自己的开发经验。这就像我们读书时做的数学题都是别人做过的(出题的人肯定做过),但是你不得不再做一遍,甚至做很多遍,这样才能积累解题经验,在高考中得高分。
我觉得说出“不要重复发明轮子”的人很渺小!
13 楼 beeke 2010-05-26  
rod johnson不发明轮子,谁认识他啊
gavin king不发明轮子,谁认识他啊
James Gosling不发明轮子,谁认识他啊
松本行弘不发明轮子,谁认识他啊

软件业就是靠发明一个个轮子进步的
不发明轮子,成不了大牛

即使成不了大牛,你总想努力一下吧
12 楼 浪客剑心 2010-05-26  
fuliang 写道
不要发明轮子是指在项目中,如果已经有很好的开源的轮子,最好采用它,而不是重新发明一个轮子,这个主要是从成本和维护,已经以后招人方面考虑的。对于个人成长,发明轮子绝对是一个好的成长方式,很多大牛也是从yet another xxx成长过来的。

赞成你的观点!!!从2个不同角度考虑。
11 楼 fuliang 2010-05-26  
不要发明轮子是指在项目中,如果已经有很好的开源的轮子,最好采用它,而不是重新发明一个轮子,这个主要是从成本和维护,已经以后招人方面考虑的。对于个人成长,发明轮子绝对是一个好的成长方式,很多大牛也是从yet another xxx成长过来的。
10 楼 ilove2009 2010-05-26  
thinkx 写道
其实这句话应该这么理解:"要有发明轮子的能力,但是没必要去发明已有轮子",但是大多数人可能是“既然有个能用的轮子,为什么还有了解轮子是怎么运作的?”

至少了解轮子的优缺点,并用用其创造更出色的车子也不错。
9 楼 J-catTeam 2010-05-26  
不管是个轮子还是车子·从中学习到了东西就是合理的~~呵呵
8 楼 thinkx 2010-05-26  
其实这句话应该这么理解:"要有发明轮子的能力,但是没必要去发明已有轮子",但是大多数人可能是“既然有个能用的轮子,为什么还有了解轮子是怎么运作的?”
7 楼 linliangyi2007 2010-05-26  
楼主可以无视那些看不起“发明轮子”的人,自己写过跟自己看过是两回事
6 楼 skydream 2010-05-26  
darkelf9 写道
不要重复发明轮子 是从工程角度出发说的

在实际项目中,尽量用已经通过工程证明 的可用的轮子
如果一定要做一个,那也必须要在对已有轮子充分了解下,能够保证自己做的轮子 比已经有的轮子 有非常明显并且本质的好处


至于个人通过做轮子学习,自己的时间当然自己可以支配,愿意去读源代码愿意去造轮子去冒险都可以,只要自己觉得值得就行
但是不要让公司和团队为个人的轮子去冒险




这个说明很中肯,我很赞成。

不过现在某些人明显有些过了,已经到了除了会用轮子其他什么都不会的地步,而且这些一个一个的轮子,慢慢变成叶子,遮挡眼睛的叶子......
5 楼 darkelf9 2010-05-26  
不要重复发明轮子 是从工程角度出发说的

在实际项目中,尽量用已经通过工程证明 的可用的轮子
如果一定要做一个,那也必须要在对已有轮子充分了解下,能够保证自己做的轮子 比已经有的轮子 有非常明显并且本质的好处


至于个人通过做轮子学习,自己的时间当然自己可以支配,愿意去读源代码愿意去造轮子去冒险都可以,只要自己觉得值得就行
但是不要让公司和团队为个人的轮子去冒险


相关推荐

    Django是否存在重复制造轮子

    很多时候,都听人家在说不要重复制造轮子,要站在巨人的肩膀上等....不过让我感到有点困惑的是,怎么样才叫做不要重复制造轮子?如何才能站在巨人的肩旁上?现在网络如此发达,资源如此丰富,开源社区也发展的很好。...

    决不重新发明轮子.docx

    【决不重新发明轮子】这个概念源于创新策略中的一种智慧,即避免不必要的重复劳动,有效利用已有资源进行改进和优化。在IT行业中,这一理念尤为关键,因为技术更新迅速,不断有新的产品和服务出现,而大部分创新往往...

    重复造轮子,表单验证

    在IT行业中,"重复造轮子,表单验证"是一个常见的议题,特别是在软件开发中。当我们谈论表单验证时,通常是指在用户提交数据到服务器之前,在客户端(通常是Web浏览器)进行的数据验证过程。这个过程确保了用户输入...

    发明轮子之“红黑树 二”

    通过阅读博客文章"发明轮子之“红黑树 二”",我们可以期待作者对红黑树的深入解析,包括更复杂的操作如旋转和颜色调整,以及如何在实际编程中应用这些概念。"redblacktree"这个文件名可能是该系列教程的源代码示例...

    记录用的好的插件,开源项目,代码等等。不重复造轮子_Notes.zip

    记录用的好的插件,开源项目,代码等等。不重复造轮子_Notes

    个人项目,将维护起来,方便以后重复造轮子,同时也开源出来给广大强大的程序员们一起优化更新代码_tools.zip

    个人项目,将维护起来,方便以后重复造轮子,同时也开源出来给广大强大的程序员们一起优化更新代码_tools

    省力的轮子PPT课件.pptx

    轮子作为人类历史上重要的发明之一,它的出现极大地改变了人类的生产和生活方式,提升了工作效率,减轻了人力负担。 首先,轮子的主要特点包括圆形结构、旋转运动和滚动摩擦。圆形设计使得轮子在转动时具有连续性,...

    本项目本着避免重复造轮子的原则,建立一套快速开发JavaWEB项目(asurplus-layui),能满足大部分后台管理系统基础

    本项目本着避免重复造轮子的原则,建立一套快速开发JavaWEB项目(asurplus-layui),能满足大部分后台管理系统基础开发功能,使得开发人员直接可从业务模块开始,减少大量的重复开发工作。前端框架使用 layui-mini ...

    了不起的轮子PPT课件.pptx

    综上所述,这个课件虽然简短,但足以引发我们对轮子这一简单却又至关重要的发明的深度思考。通过深入探讨轮子的科学原理、历史演变及其在各领域的应用,我们可以更好地理解和欣赏这个“了不起的轮子”带给我们的便利...

    SolidWorks小轮子

    本主题聚焦于使用SolidWorks设计的一款"小轮子",这款轮子是标准尺寸,配备了轴承,并且采用实心橡胶材料,适用于手推车等应用。 首先,我们来看看"roue_41-312-100b08.SLDPRT"这个文件。SLDPRT是SolidWorks的零件...

    百度地图毕业设计源码-WheelPlan:重新发明轮子来训练我们的代码技能

    造轮子的目的,不是去重复的发明轮子,而是实际的去动手制作轮子。把一些公认的算法,优秀的思想,用自己的方式表达一下,锻炼一下,让知识成为自己思想的一部分。而不总是去google去百度,xxx好还是zzz好,而是能够...

    了不起的轮子小班科学详细内容PPT课件.pptx

    【了不起的轮子——小班科学教学内容】 在幼儿教育阶段,科学启蒙是非常重要的一个环节,它能够激发孩子们对周围世界的探索兴趣,培养他们的观察力和思考能力。本课件“了不起的轮子”旨在让小班的孩子们了解轮子的...

    中班科学轮子PPT学习教案.pptx

    轮子是人类历史上的一项重大发明,极大地推动了交通运输和生产力的发展。在PPT的第一部分,讲述了原始人如何从滚动重物如圆木的过程中得到灵感,将滚木切割成轮子,从而减少了搬运的难度。这一创新体现了人类对工具...

    轮子哥安卓开发框架,非常好用

    轮子哥安卓开发框架,一个非常优秀的开源框架。 各项界面,对话框,全面的内存优化、布局优化、代码优化、瘦身优化。 项目中常见的代码进行了封装,或是封装到基类中、或是封装到工具类中、或者封装到框架中,不...

    幼儿园小班科学活动教案《轮子工程师》含反思.docx

    《轮子工程师》是一份针对幼儿园小班的科学活动教案,旨在通过有趣的方式引导幼儿认识轮子的特性和功能,并初步理解不同形状如圆形、三角形、正方形的特点及其在日常生活中的应用。活动的设计旨在激发孩子们的好奇心...

    重新发明轮子:这些是我遇到的一系列面试问题的集合,我被要求重新发明轮子

    在IT行业中,"重新发明轮子"通常是指在已有成熟解决方案的情况下,重新设计或实现一个功能,这在面试中常用来考察候选人的基础理解、问题解决能力以及编程思维。本篇将围绕Go语言,深入探讨可能出现在面试中的相关...

    小班语言轮子歌.pptx

    7. **重复记忆**:儿歌常以重复的形式出现,帮助孩子通过反复听和唱来加深记忆,提升记忆力。 然而,由于实际的课件内容未知,以上推测可能并不准确。如果需要更具体的知识点解析,建议提供详细的课件内容或更详细...

Global site tag (gtag.js) - Google Analytics