1
jianghu52 2013-08-07 11:51:48 +08:00
稍微泼点冷水,你现在的写的代码超过90%都是已经重复过的轮子
|
2
laskuma 2013-08-07 11:58:11 +08:00 1
@jianghu52 为什么会有这样的冷水呢?我并不觉得造轮子是一件浪费时间的事情。如果只会调用,永远把那些“轮子”当成黑盒,你就永远也理解不了轮子的巧妙。也没有能力自己创新,在新的方面造出新的“轮子”
|
3
sethverlo 2013-08-07 12:03:47 +08:00
@jianghu52 就像 Livid 说的「我觉得,有很多开源软件满足的不是用户,而是作者」,在这种情况下自己造个轮子其实也没什么不好的……而且有的轮子的学习成本(主要指代码规范等方面)要远远高于重新再造个轮子的成本……而且如果想深入学习某个技术的话(比如代理)重复造轮子也是必要的吧……
|
4
bengol 2013-08-07 12:04:31 +08:00
羡慕啊,天天调试的飘过
|
5
rteta 2013-08-07 12:44:38 +08:00
的确,部分开源项目是就是个渣,只是爽了作者的满足心理,对用户毫无价值。
|
6
zhujinliang 2013-08-07 12:50:34 +08:00 6
借话题说说自己的事:
顺便 @jianghu52 讨论下 我还是菜鸟,我承认,我还在不断学习探索的路上。 前些日子,心血来潮去面试一个工作。电话面试,对方要求会xxx框架、熟悉xxx环境。我没接触过那些框架,或仅有所耳闻。 那些框架无非是些加载器,或者MVC之类的。基本原理我懂,我在自己的项目中用自己的觉得优雅方式,造了一个自己满意的轮子来实现了诸如此类的功能,甚至说,让我实现一个这样的框架我都可以做到。 有时也不乏,“原来这就是xxx框架啊,我以前都是这样实现这个功能的”这类的感慨。 结果是,虽然双方表示互相理解,但面试不成功。 可能的原因:对方急需人手,无暇培训(大家做项目肯定需要用一样的框架) 沟通中也提到过重复造轮子的问题。似乎对方认为重复造轮子是不对的,不符合程序员思想的。似乎“重复造轮子是错误的,别问我为什么是错的,社区里大家都这么说,书上也是这样写的”。 但是我在满是自己的轮子的世界里玩的很happy。自己造的轮子,别人看起来可能跟常见的轮子没啥区别,或者觉得更难用,但对于自己来说: ◇自己的轮子自己用起来最舒服 ◇使用中如果有不满意的地方可以随时改掉,改多了觉得恶心了,大不了再从头造一个 ◇自己扩展、维护起来很轻松,不必啃别人的代码,研究别人的思想 ◇自己的轮子们能从头至尾保持一个统一的思想 对于我来说,如果原理能够看透,学习如何用别人的轮子还不如自己造一个轮子。 ◇花费的时间上,如果不是很复杂的功能,自己造轮子比学别人的轮子更省时间,而且记忆负担小。 ◇获得的乐趣上,自己造一个轮子比学习别人的更有乐趣和动力。 似乎是有的人乐于探索,发现一个好框架兴奋的不得了,“哇,居然还能这样用”,“比那个xxx好多了”,类似这样。 应该也有不少人乐于创造,看到一个框架,表示“不就是xxx原理的么,我能写个更好的”。 乐于探索的看不起乐于创造的,“重复造轮子,你看看人家的框架,学学人家先进的思想”,乐于创造的也看不起探索的,“不就是xxx原理的么,我能写个更好的”。 乐于探索的似乎聊得开,各社区,群组,谈x框架,y库,z平台滔滔不绝。搞创造的自个儿在一边对着屏幕不停地抠手指琢磨如何来的优雅,偶尔手贱发表一下,有人就拿x框架,y库,z平台来进行对比。 |
7
cxe2v 2013-08-07 13:26:36 +08:00
@zhujinliang 说的太棒了
|
8
refresh OP @jianghu52 呵呵,不用泼冷水,话说我写代码已经很多年了。以前也造过很多轮子,各种轮子,但我觉得造轮子是每个程序员的必经之路,写多了才会知道自己的不足。Copy不是坏事,就怕没有思考的Copy。我们都是普通人,我们不是大师,所以我们要多磨练。但不能闭门造车,多研究别人的代码和方法论是有必要的。
@zhujinliang 年轻人造点轮子没什么不好,只有深入了解了,才会得心应手,才会happy |
9
cxshun 2013-08-07 13:42:18 +08:00 1
@zhujinliang 有同感。重复造轮子没什么不好的,反而能让自己对某部分的知识或者思想有更深入的理解。
其实探索和创造并不矛盾,很多时候我们都是先探索,然后到一定阶段,发现某个框架或者工具不符合自己的要求,或者说改起来太费劲,我们就会学着去创造。创造的过程肯定会有一些思想迸发的东西,慢慢地把这个创造的东西做得更好。 其实进行对比这是人类的天性,国外稍微好点,不会说啥啥框架做了,你这个有什么优点,国内就会有这样的说法,别人都做了,你做这个有什么用,好像就是说别人做了,再做另外一个就是浪费人生一样。 很多时候,我们用一个东西,归根结底要深入到它的思想,这样才不会说他换了一个API就杯具了。就像python,python3和python2换了很多东西,但真正深入的人却没感觉有多少困难。探索->创造,感觉这是一个必然的过程,也是一个想要深入必须经历的阶段。 |
10
ulmate01 2013-08-07 13:42:46 +08:00
造轮子什么意思呢?谷歌得的不太全面,大概理解了,但是求指教。
|
11
alexrezit 2013-08-07 13:51:20 +08:00
楼主你想说的是 create 吧...
|
12
Paola 2013-08-07 13:58:29 +08:00
@zhujinliang 都用自己的框架,如何协同工作呢?
|
13
edgar 2013-08-07 15:25:03 +08:00
|
14
SR1 2013-08-07 15:32:16 +08:00
@zhujinliang 说得好,要有一颗乐于接受新事物的心,也要有一双热爱创造的手。
|
15
jesonyang 2013-08-07 15:39:29 +08:00
make 出现error 时,就爽不起来了!
|
16
leavic 2013-08-07 15:39:38 +08:00
调代码的时候爽吗?
|
17
zhujinliang 2013-08-07 15:45:26 +08:00
@Paola 我刚才回避了这个问题。
多个人共同开发的,不牛x的团队还是要用一个成熟的框架(否则各种配合的不舒服,以及带来更多的坑)。 牛x的团队而且有时间的话可以自己搞一个框架,不少流行框架就是这样来的。 或者是团队里有个牛x的人站出来说,用我的框架吧(估计会死的比较惨)。 自己凭爱做的项目,我的意见是可以随性些,让自己获得更多乐趣不更好么。 我是想表达下造轮子是个人爱好,未必坏事。更不会死板到到哪儿都非要用自己的轮子。 那次面试也让我清醒了些,感觉有些脱节了,谈到有些框架我不了解,也没有框架方面经验的积累,谈实现某些功能也不知道去哪找合适的框架。 @ulmate01 搜一下 “不要重复发明轮子”。指有的项目或功能,别人已经做过,我们需要用的时候,直接拿来用即可,而不要重新制造。 |
18
jacksonpan 2013-08-07 16:50:41 +08:00
重新造轮子是让自己了解的更清楚,而并非说要替代前人的工作,这个没有什么必要不必要的,只要你想,我非常支持你造轮子,但是一旦自己造了轮子,要坚持维护,不然就浪费资源了。
|
19
wupher 2013-08-07 16:56:09 +08:00
mvc、加载器,不会是写j2ee企业应用吧。
|
20
wwqgtxx 2013-08-07 17:47:07 +08:00 via Android
创造是人类最大的财富,支持楼主!!
|
21
hanf 2013-08-07 17:48:06 +08:00 1
偷偷地告诉楼主,我经常借助公司要“自主开发”的机会自己造一遍轮子...
我完全理解你. |
22
timothyye 2013-08-07 17:52:30 +08:00 via Android
天天改bug,帮别人擦屁股的飘过……
|
23
refresh OP |
24
thai9quohs6jae1C 2013-08-07 19:23:39 +08:00
你的mark吗,中文不错嘛。
|
25
leavic 2013-08-07 19:46:36 +08:00
@refresh 看来你是没写过底层硬件代码啊,等你碰上连官方都没发现的芯片bug的时候就真的会崩溃了,刹那间觉得自己好孤独.
|
26
refresh OP @leavic 汗,我是做应用层面的,你那个是科学家级别,我这个是代码匠人级别的,嗯,我就是个手艺人,只不过喜欢这门手艺
|
28
williamx 2013-08-07 20:46:01 +08:00
“不要重新造轮子”已经成了“批评界”万能的法宝了,他们把这句话的主旨理解的异常透彻并且贯彻执行,以至于他们在“批判”的时候,都是同一个“轮子”。
|
29
bradlee 2013-08-07 21:09:34 +08:00
@leavic 哈哈哈哈 是搞硬件的这种是常态吧?需要FAE支持的,我记得我去年调一个摄像头的驱动,其实很简单,FAE发来一个表格,那个表格是官方文档上没有的,全是一堆寄存器设置,调试那个才叫无语
|
30
gzb1985 2013-08-07 21:09:51 +08:00
重复去造轮子,不一定能造好,最近一直在模仿着造轮子
|
32
zhujinliang 2013-08-08 08:26:16 +08:00
|
33
zhaoyafei 2013-08-08 08:38:30 +08:00
@zhujinliang 忽略我先
|
34
jianghu52 2013-08-08 09:00:20 +08:00
哈。一天没见,回复的人好多。看来很多人对于我那句“造轮子”很有意见啊。恩,那我解释一下,我并不反对造轮子,事实上我做的事情99%以上也都是在造轮子。所以我没有立场鄙视别人造轮子。
但是最近一直跟着产品经理学习,最大的感悟是,在现实的商业社会里面,一个产品的成功,很大程度上归功于业务的创新,而不是代码的创新。换句话说,你可以用别人写到烂大街的代码,创造出别人从没有实现的业务,这才是社会所需要的。不要太过沉迷与写代码的那种感觉,那种看着机器按照自己的意愿输出各种各种值,实现了各种算法,各种功能,那种快乐我懂。 |
35
holy_sin 2013-08-08 09:10:54 +08:00
看完这个帖子,真的很激动人心,我偶尔就会产生厌烦,被不断变动的需求折腾
|
36
zhicheng 2013-08-08 11:07:24 +08:00
Unix 是重复过的轮子,BSD 是重复过的轮子,Solaris 是重复过的轮子,Linux 是重复过的轮子,ARM 是重复过的轮子,MIPS 是重复过的轮子,更别提数不胜数的“替代”软件。如果已经有 如果已经有 PC 了,我们还要 Mac 干嘛?如果已经有 Windows 了,我们还要 Mac OSX 干嘛?WPS 了,我们还要 Office 干嘛?如果已经有 iOS 了,我们还要 Android 干嘛?
别那么死板,正是有了很多重复的创造和竞争,才有的伟大的变革。 用别人的东西 -> 不爽,修改它 -> 修改得太多,不如自己创造一个 -> 别人用自己的东西 -> 别人不爽。。。。 所有的项目和产品,都是这样出来的。 |
37
Golevka 2013-08-08 11:17:11 +08:00
@leavic 并且一般嵌入式行业都是今年做明年/后年release的产品, 许多芯片还没量产就开始用了, 于是巨坑无数 (我们能发现的也只是冰山一角T T).
去年还遇上个处理器访问Ext. Flash的pipeline hazard没处理好于是处理器直接lockup的bug... 芯片厂商不肯改, 于是我们只好改编译器让它生成访存代码时自动插入3个nop() /*fvck!*/ |
38
picasso250 2013-08-08 15:13:14 +08:00
我也喜欢写轮子。喜欢写轮子的人都是好奇的人。
|