到底是否应该重复造轮子

发布时间:2015-04-15 22:37:00作者:左潇龙阅读(3088 )评论(67)

    引言

      

      之所以谈起这个话题,是因为和新公司同事的一次交流。他是LZ当时二面的面试官(以下简称CZ),看过LZ的github,因此知道LZ正在尝试写一个redis的Java客户端。在交流的过程中,CZ给LZ传达了一个观点,就是虽然LZ的这种钻研精神不错,但是他实际上不推荐这种做法,也就是重复造轮子的做法。

      有意思的是,CZ之前自己也写过一个类似于LZ的xxoo类型的组件(用于Bean与Xml的转换),但是他给LZ的建议却是“不要重复造轮子”。

      

    人类的心理

        

      LZ私底下也做过很多重复造轮子的事,比如之前写的xxoo,现在正在写的deerlet等等。尽管LZ自己做了这么多重复造轮子的事,但是与CZ一样,LZ给新人传达思想的时候,似乎也会去说“不要重复造轮子”。

      LZ事后想想,觉得这件事情并不是偶然。为什么我们自己在做的同时,却在告诉别人不要做?这件事听起来,特别像是现在很多人拼命走后门进事业单位的同时,却在网络上各种鄙视贪官污吏,说得义正言辞,那叫一个正直。

      明明自己在做,但却告诉别人不能这么做,这是人的一种正常心理。要分析起来,LZ倒觉得自己有点在讲心理学。在LZ看来,之所以出现这种心理,根本原因在于人们普遍的一种趋利避害的心理。

      什么叫做趋利?

      拿刚才的例子来说明,就目前的社会现状,很多人都靠走后门进入了事业单位,从此衣食无忧,迎娶白富美,完虐高富帅。这种瞬间逆袭的赶脚当然让所有人迷恋,人类潜意识当中的趋利心理就在这时发挥了作用,很多人都会对此趋之若鹜,希望自己也成为其中的一员,有朝一日能够搂着白富美在大街上沐浴阳光,在海滩上一起堆沙人。

      拿LZ自己来分析,就是因为很多人造轮子造出了名气,造出了未来,造出了钱途,所以LZ才有闲心重复造一些轮子,当然也妄想着有一天能够逆袭。

      什么叫做避害?

      依旧是刚才的例子,凡是自己依靠后门进了事业单位的人,潜意识当中都希望别人进不来。不要否认,每个人一定会有这样的心理,只是有的人隐藏的比较深罢了。所以这些人在网络上的作为,就是希望能够阻止别人。换句话说,很多人抱怨社会不公平,不是因为不喜欢这个不公平的社会,而是因为自己处在不公平中不利的那一面。

      那么谈到LZ自己,之所以告诉别人不要重复造轮子,是因为LZ知道重复造轮子如果造不出腾讯的效果的话,是没有太大意义的。所以LZ不希望有一天别人发现的时候,内心鄙视LZ说,“当时就是他告诉我要这么做的,现在想想真不该听他的话”。为了能够给别人一个相对来说比较正确的建议,LZ只能自己做着这样的事,再劝着别人不要这么做。

      

    到底应不应该重复造轮子

      

      扯淡完以后,还是得面对现实,到底应不应该重复造轮子呢?

      这么说吧,99%的人都不应该重复造轮子,只有1%的人应该去做这件事。所以对于每一个人来说,这个问题的答案都可能是不一样的。

      为什么这么说?

      因为只有1%甚至更少的人,造轮子造出了未来,而剩下的,都成为了这少数人的绿叶,衬托着他们的光芒。对于剩下的这批人来说,这些轮子造的意义并不大,至少对他们自己来说,花费的时间与得到的成长不成正比。

      不过,谁又知道你是属于那99%,还是那1%呢?

      

    心灵鸡汤的味道

      

      现在网络上有很多心灵鸡汤,让人看完以后,跟打了鸡血一样,兴奋不已,或者斗志昂扬。

      LZ想说的是,其实什么事情都不能一棒子打死。心灵鸡汤在某些特定的场景下,对人是很有帮助的。比如一个刚经历过失败,丧失斗志的人,他或许真的需要一碗鸡汤给他打打气。哪怕这鸡汤里面有一些不好的东西,但最起码当时来说,可以让这个人再重新站起来。

      此外,同样的环境,每个人所产生的想法也会不一样,这就是一个人的天赋。很多人在看完心灵鸡汤之后,喜欢在下面张着血盆大口狂喷一气,把作者骂得狗血淋头。在LZ看来,这是非常不成熟的表现。一个成熟且善于思考的人,他会从中挑选对自己有益的,摒弃掉其中的糟粕。这也是为什么善于思考的人容易进步,就是因为他们不管接触什么,都是在学习,在思考中学习。

      所以,LZ规劝各位,任何时候,都不要忘了思考,不要忘了学习,哪怕是一个反面教材,可能也有值得学习的地方。

      

    结束语

      

      说到这里,答案就自然出来了。任何人告诉你的答案都要思考以后再执行,沿着自己深思熟虑之后的路走,才是最正确的道路。

      现在,你还会问LZ到底应不应该重复造轮子吗?

      

     
     

    版权声明:本文版权归作者(左潇龙)所有,欢迎转载。但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    13
    精彩
    0
    感动
    0
    搞笑
    0
    开心
    0
    愤怒
    0
    无聊
    0
    灌水
    0
    惊讶
#1楼     时间:2015-04-15 22:45:00      来源:yuhuashi
沙发。。。
#2楼     时间:2015-04-15 22:50:00      来源:乱舞春秋
在造与不造这个选择题面前,我们应该具备造轮子的能力,这样才有得选。
#3楼     时间:2015-04-15 23:25:00      来源:祥子爱游戏
2楼说的对。
轮子被造出来才知道这个轮子是不是个好轮子,能用的轮子。
这样才能有技术的不断更新(不只是早轮子)。
#4楼     时间:2015-04-15 23:33:00      来源:左潇龙
@ 祥子爱游戏
@乱舞春秋
说的没错,LZ默认了大家都有造轮子的能力。不过,其实有一点是不变的,就是轮子甭管好坏,能造出来就是能力的体现。就跟考研一样,能考上就是能力的体现。主要的问题就在于,甭管是考研还是造轮子都需要时间,对于有些人来讲,如果考研或者造轮子不能给你带来飞跃的话,花费这个时间是否值得,还是有待商榷的。
#5楼     时间:2015-04-16 00:13:00      来源:新一年
如果你的轮子在某些地方会比以前的轮子好, 那造一些挺好的. 如果只是照着别人的轮子抄抄, 自己不是为了轮子有什么不方便的地方, 纯为了造轮子而造. 那确实有点浪费时间, 有这时间多看两本书提高的更快.
#6楼     时间:2015-04-16 00:25:00      来源:左潇龙
@ 新一年
可是“比以前的好”,这个结果在造之前又怎么可能知道呢,毕竟现在大部分的轮子都是成熟的,都没有明显的功能或者性能缺陷。
#7楼     时间:2015-04-16 00:47:00      来源:NewSilen
造轮子是一种不一样的追求,只要有想法,就应该去实现,别人设计的和自己设计的是两码事,就算做的不好也是一种不同的体验。而且一个从来没造过轮子的人第一次造轮子怎么可能比那些经常造轮子的人还厉害呢,至于这里面投入的时间会很多,而且可能一辈子都转化不出什么好东西,最后只能用情怀安慰自己,这个还是要自己取舍的。
#8楼     时间:2015-04-16 09:35:00      来源:唐大侠
个人极其鄙视当下的那些心灵鸡汤,我不会去喷,没有什么意义,因为喷了别人看到也不会明白。佛家讲无明,他们自己都没有觉,看这些左右自己思想的来打鸡血,没多久就萎了。同意2楼的说法
#9楼     时间:2015-04-16 09:54:00      来源:chinglish
那么楼主,到底该不该造轮子?
#10楼     时间:2015-04-16 10:26:00      来源:小眼睛老鼠
引用LZ私底下也做过很多重复造轮子的事,比如之前写的xxoo,现在正在写的deerlet等等。尽管LZ自己做了这么多重复造轮子的事,但是与CZ一样,LZ给新人传达思想的时候,似乎也会去说“不要重复造轮子”。


这是扯淡
我告诉你为什么不要重复造轮子的原因吧
这里要从2个角度来说
从个人的角度来说 应该是鼓励去重复造轮子的 因为这可以提高个人的技术

但是从企业的角度来说是不提倡重复造轮子的
别人已有的轮子 必然经历过测试 有文档支持 而且是经过长时间的演化 有一套自己完整的规约的 而且是显式的

你自己造的轮子 即便和别人有同样的功能 你能保证不出bug 出了bug你维护 以及文档方面全部都跟的上?
如果这些做不到的话 就别重复造轮子 造轮子付出的代价并不是你想的那样 你造出去的轮子 你要负责的

例如当年师徒正美 在哪儿造轮子的时候 有人奚落过他 没人会用的写的东西的
我当时就顶过他 别人学技术 自己造轮子没什么不可的

但是经历了这个过程之后 他才能胜任现在去哪儿网的 架构这个位置 当然他造的第一个轮子肯定是没人用的
但是这也让他了解的造轮子的不易 和 自己的不足
后面的轮子 慢慢不就像大神一样被别人膜拜了么

你别把人心向的那么叵测
#11楼     时间:2015-04-16 10:27:00      来源:左潇龙
@ 唐大侠
存在既有道理。
#12楼     时间:2015-04-16 10:28:00      来源:左潇龙
@ chinglish
反问一下自己,到底属于那99%还是那1%。
#13楼     时间:2015-04-16 10:45:00      来源:凌晨的搜索者
重复造轮子并不是为了能超越前人,而是从基础做起,不至于在基础设施方面受制于别人。重复造轮子,其实就是为自己打好根基
#14楼     时间:2015-04-16 10:48:00      来源:左潇龙
@ 小眼睛老鼠
兄弟有点激动啊。首先要澄清的是,LZ并没有说不能重复造轮子,0.0。。。。
其实文中已经说了,如果你觉得你属于那1%,那就尽管去造即可。当然了,就算你属于那99%,只要你不觉得造轮子浪费时间,那也尽管去造即可。和考研一样,轮子甭管好坏,造出来就是对自己有好处的。问题就在于这个时间值不值得花费,这个就见仁见智了,毕竟一个轮子是需要长期呵护的,这需要花费很长的时间。
其实LZ文章要表达的意思就是,不要听任何人告诉你的(比如你可能会听到有人告诉你不要去重复造轮子),而是应该自己有自己的思考之后再做决定。
#15楼     时间:2015-04-16 11:19:00      来源:chinglish
@ 左潇龙
行人事知天命,明天的事我又咋知道呢,是不是1%,我也不知道撒。兄弟你说了等于没说啊
#16楼     时间:2015-04-16 11:46:00      来源:618
时间不紧迫可以造造,当学习了,赶项目的时候还是算了
#17楼     时间:2015-04-16 11:51:00      来源:Launcher
对于个人而言,重复造轮子不是个问题,想造就造,不想造就不造。
对于公司而言,这就是值得商榷了,难道楼主会把轮子维护的跟公司的寿命一样长,而不用别的同事给楼主的轮子擦屁股?
#18楼     时间:2015-04-16 11:57:00      来源:左潇龙
@ chinglish
你能说出来这句话,就基本上说明你是那99%了。所以,个人建议还是别造了,仅供参考。
#19楼     时间:2015-04-16 12:17:00      来源:舞千愁
要想把所有的东西抓在手里必须要造,如果有专利什么的,更新应该躲开这个风险,更应该要造,比那个要快要好要强。
像腾讯在某种意义上也是造轮子,看代价去,如果技术储备需要,以后产品用得着,还是需要去试一下的。
#20楼     时间:2015-04-16 12:25:00      来源:chinglish
@ 左潇龙
你看人准不准哦,招摇撞骗可不行
#21楼     时间:2015-04-16 12:28:00      来源:AaronJin
轮子必须要造,但用不用要看性价比,不能过分依赖外部或自主的东西,要公正的评估
#22楼     时间:2015-04-16 12:42:00      来源:ta_wuhen
对于个人:轮子能造还是要造的,自己敲一边顶看N边。
对于公司:则要看情况而定了,是不是有要独立的体系的决心。情况不同则,对待这个问题的观点也不同。

反正我个人在重复造着。。
#23楼     时间:2015-04-16 12:58:00      来源:JulioZou
总结楼主的一句话就是:做自己。但是单从这个问题来说,我倒是觉得分情况,如果是个人学习,我觉得重复造轮子的过程就是自我提升的过程,看别人的代码,取其精华,让自己的能力越来越强,也同时审视自己的缺点;而在公司的实际项目中,如果公司既有一套东西,那么就不要想着造一个更好的,因为会有专人来维护,团队之间讲的是配合,如果能形成知识分享的氛围,那再好不过了
#24楼     时间:2015-04-16 12:59:00      来源:冲杀
去造了才知道原理,才能改进!当然不能占用工作时间去做
#25楼     时间:2015-04-16 13:07:00      来源:InkFx
之前有几个 业务。
于是我在网上 找轮子 —— 结果 找到的轮子,不是 功能不全,就是稳定性很糟。
算了,别人老外 花了 3各月写的轮子 —— 不过如此,不如自己写。

三天时间,自己造的轮子,功能,稳定 直接 把 老外 虐成渣渣。
—— 改天,写一篇博客,专门记录 那些被我虐成渣渣的老外。
#26楼     时间:2015-04-16 13:08:00      来源:左潇龙
@ chinglish
哈哈,你这么一说,我还真像是个算命的半仙,信与不信全凭你自己了。
#27楼     时间:2015-04-16 13:09:00      来源:左潇龙
@ AaronJin
不能过分依赖外部或自主的东西,要公正的评估。
这句话很赞同。
#28楼     时间:2015-04-16 13:10:00      来源:左潇龙
#29楼     时间:2015-04-16 13:11:00      来源:wenzi0_0
重复造,其实也是为了更加深入的了解轮子的原理,希望能够进一步的学习。比如类似淘宝的放大镜,现在网上有很多这样的例子,无数的轮子。可是如果自己不写一次的话,就不是特别的了解他是怎么实现的
#30楼     时间:2015-04-16 13:28:00      来源:张小驴同学
不造一造怎么知道该不该造
#31楼     时间:2015-04-16 13:31:00      来源:Kation
造不造轮子在于现在的轮子还不好用
只有你造的轮子比别人的好才有使用意义
#32楼     时间:2015-04-16 13:35:00      来源:adnin
@ 张小驴同学
引用不造一造怎么知道该不该造

哪里都有你/
//很厉害的样子
在上面看到几位仁兄发表了自己的观点///
////世界上总有百分之几的人是用来衬托的
上面几位仁兄衬托的很好/////
//////需要吾辈学习啊···
#33楼     时间:2015-04-16 13:38:00      来源:adnin
@ chinglish
引用@左潇龙
你看人准不准哦,招摇撞骗可不行

這位仁兄有时间考个"上帝從業資格證"吧···
#34楼     时间:2015-04-16 13:39:00      来源:秋荷雨翔
我也正在准备重复造轮子,每一个追求上进的人都在重复造轮子,就算自己造的轮子很烂,也要重复造轮子,不然怎么掌握更深层的技术?不然技术怎么进步?不然怎么拿到高工资?你不会造轮子,可能有的职位,连面试的机会都没有?不要重复造轮子,谁信谁是傻子!
#35楼     时间:2015-04-16 13:51:00      来源:MeegwunBraddock
@ 乱舞春秋
这个说到点子上了 不管重复不重复 轮子你得会造
#36楼     时间:2015-04-16 13:57:00      来源:chinglish
@ 左潇龙
大师别介,不要凭我,更不要惯着我,你要坚持,要鞭策,你有普渡众生的责任啊
#37楼     时间:2015-04-16 13:59:00      来源:左潇龙
@ chinglish
天机不可泄露,只能点到为止。这是我等半仙的职业素养。
#38楼     时间:2015-04-16 14:00:00      来源:chinglish
@ adnin
哪里可以考,我还是想考的
#39楼     时间:2015-04-16 14:04:00      来源:chinglish
@ 左潇龙
你的职业素养高是高了,只是害苦我等苦苦挣扎的凡人,你这不是在害人吗,没有好报应的啊
#40楼     时间:2015-04-16 14:12:00      来源:左潇龙
@ chinglish
扯远了,咱们俩的嗑就先唠到这吧。咱们多看看大神们的回复。
#41楼     时间:2015-04-16 14:13:00      来源:adnin
@ chinglish
引用@adnin
哪里可以考,我还是想考的

/想考那就好說了-給你答案要不要啊···
哈哈//
///
#42楼     时间:2015-04-16 14:20:00      来源:chinglish
@ 左潇龙
听你的,瞅大神
#43楼     时间:2015-04-16 14:20:00      来源:chinglish
@ adnin
这么直接就来答案,耿直,说
#44楼     时间:2015-04-16 14:23:00      来源:adnin
@ chinglish
引用@adnin
这么直接就来答案,耿直,说

/有點規模的答案都是要錢的···
看在同行的面子上已經白回答你那麼多了//
///答案還想免費?
也真是醉了···////
下次問問題前動動腦子/////
哈哈····
#45楼     时间:2015-04-16 14:29:00      来源:chinglish
@ adnin
哥们算了,还耿直呢,哪里耿直了,还钱呢,罪恶!。我看还是算了,跑到人家里来唠我们的闲嗑,总有点不厚道的感觉
#46楼     时间:2015-04-16 14:34:00      来源:一世尘梦
我有一个想法。
关于是否重复创造轮子,还得看个人所在公司的需求,并不是每一个前辈的轮子都适合你现在项目的需求,有的可能80%符合,有的可能40%符合,你改造一部分,使得这个轮子更适合你所在公司的车,这才是一个好轮子。
#47楼     时间:2015-04-16 14:39:00      来源:小浩学长
这对于我来说从来不是一个问题,造轮子,必须造。
从一年前我就计划好,以后一定要当上框架架构师,无论如何都要造。
#48楼     时间:2015-04-16 14:46:00      来源:敷衍不起
一抄二改三创新。先创造好轮子,才可能造车子。个人觉得造轮子是很有必要的,这也是一个学习的过程。
#49楼     时间:2015-04-16 15:33:00      来源:King.cs
绝知此事要躬行
#50楼     时间:2015-04-16 16:18:00      来源:xj3614
轮子都造不出来,你还想造车吗?
#51楼     时间:2015-04-16 16:41:00      来源:vbfool
99%的轮子是迫不得已才造的,要是真有那么多轮子能用,哪怕是方的都行啊。
#52楼     时间:2015-04-16 16:46:00      来源:张小驴同学
@ adnin
我一点都不厉害,只是没事干,看看热闹。
#53楼     时间:2015-04-16 16:51:00      来源:OlderBird
我是个不喜欢造轮子的人,我喜欢把人家造的人家的轮子直接拿过来用,可是后来,我发现找别人造好的轮子的时间超过了我自己造轮子的时间,而且有时拿过来的轮子还不一定适用,就这样
#54楼     时间:2015-04-16 16:52:00      来源:吉他爱好者
如果是自己用,找开源或者反编源代码直接用就行了
如果是商业项目或者竟标,你没自己的产品,也不行了,这轮子不造都不行
#55楼     时间:2015-04-16 16:58:00      来源:卓酷
轮子是一定要重复造的,因为那句话的原文是“Stop Trying to Reinvent the Wheel”-不要重复发明轮子。
这句话更适用于框架或解决方案的情景
#56楼     时间:2015-04-16 17:43:00      来源:SmartBooks
这个得看是什么轮子。
#57楼     时间:2015-04-16 17:59:00      来源:花儿笑弯了腰
最近同事也老是跟我说同一个问题,他的意思呢 自己实现一个spring-mvc,原因呢,因为spring的包太大,自己的公司就应该有自己的一套框架;我的想法就是感觉spring 已经这么多年了,社区贡献者,生态圈,很有东西已经很成熟了,完全没有必要自己去折腾,项目后期维护的成本也会很低,就这么多吧,下班。
#58楼     时间:2015-04-16 19:01:00      来源:李去兴
redis可以说就是个轮子,其实这样的东西早就可以有,因为实现它所需要的技术很多年前就能满足,我觉得应该说需求造轮子,我所说的需求是广泛的,包括名利
#59楼     时间:2015-04-16 19:15:00      来源:东至
有适合自己的轮子最好,没有且有能力就造一个。很多问题说多了就成了哲学问题,哲学问题是没有答案的。
#60楼     时间:2015-04-16 20:17:00      来源:Wayne.liu
我戴上透视眼镜,居然在楼主的博客中间偏下方看到一辆自行车??? 好像还是永久牌的?
#61楼     时间:2015-04-16 21:53:00      来源:BeMe
楼主这个讨论的是哲学问题啊,造不造轮子根据自己的需要来就行了,如果能够提升自己的满足感,那么重复造也无妨。
#62楼     时间:2015-04-16 22:37:00      来源:新一年
@ 左潇龙
引用@新一年
可是“比以前的好”,这个结果在造之前又怎么可能知道呢,毕竟现在大部分的轮子都是成熟的,都没有明显的功能或者性能缺陷。

你造轮子之前会先用别人的轮子吧. 用别人的轮子可能会有些不舒服或者功能有缺陷的地方, 你能改进, 这才有造轮子的价值.
如果连别人的轮子都没用过, 就开始造轮子, 那就真是为了造轮子而造, 没什么意思了.
#63楼     时间:2015-04-17 15:06:00      来源:h82258652
自己做轮子玩玩就行,放到生产环境出问题自己负责。
一般是现有的轮子功能不足、无法扩展实现所需要求时,才去自己动手干。
程序就像一辆汽车,而程序中的组件就像汽车的轮子、发动机这些部分,组装远比重新研发组件方便、快捷。
#64楼     时间:2015-04-21 09:19:00      来源:催夜凉风
继续造下去吧
#65楼     时间:2015-04-24 11:46:00      来源:inevermore
造轮子才能更加理解问题
#66楼     时间:2015-05-04 16:01:00      来源:穷苦书生
如切如磋,如琢如磨,边系鞋带边思考人生,我喜欢琢磨这个词儿。
#67楼     时间:2017-05-24 15:24:34      来源:哈尔滨市网友
发表评论

站内搜索

最新评论