V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
refresh
V2EX  ›  程序员

感叹一下,写代码真的很爽,有同感的没,我很享受make的乐趣

  •  
  •   refresh · 2013-08-07 11:47:50 +08:00 · 5971 次点击
    这是一个创建于 3920 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前提是按自己的意愿写代码,我不喜欢完全按照别人的旨意写代码。当然不是说不管需求,我不喜欢太死的需求,比如说外包公司,你完全没有发挥的空间。
    38 条回复    1970-01-01 08:00:00 +08:00
    jianghu52
        1
    jianghu52  
       2013-08-07 11:51:48 +08:00
    稍微泼点冷水,你现在的写的代码超过90%都是已经重复过的轮子
    laskuma
        2
    laskuma  
       2013-08-07 11:58:11 +08:00   ❤️ 1
    @jianghu52 为什么会有这样的冷水呢?我并不觉得造轮子是一件浪费时间的事情。如果只会调用,永远把那些“轮子”当成黑盒,你就永远也理解不了轮子的巧妙。也没有能力自己创新,在新的方面造出新的“轮子”
    sethverlo
        3
    sethverlo  
       2013-08-07 12:03:47 +08:00
    @jianghu52 就像 Livid 说的「我觉得,有很多开源软件满足的不是用户,而是作者」,在这种情况下自己造个轮子其实也没什么不好的……而且有的轮子的学习成本(主要指代码规范等方面)要远远高于重新再造个轮子的成本……而且如果想深入学习某个技术的话(比如代理)重复造轮子也是必要的吧……
    bengol
        4
    bengol  
       2013-08-07 12:04:31 +08:00
    羡慕啊,天天调试的飘过
    rteta
        5
    rteta  
       2013-08-07 12:44:38 +08:00
    的确,部分开源项目是就是个渣,只是爽了作者的满足心理,对用户毫无价值。
    zhujinliang
        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平台来进行对比。
    cxe2v
        7
    cxe2v  
       2013-08-07 13:26:36 +08:00
    @zhujinliang 说的太棒了
    refresh
        8
    refresh  
    OP
       2013-08-07 13:35:08 +08:00
    @jianghu52 呵呵,不用泼冷水,话说我写代码已经很多年了。以前也造过很多轮子,各种轮子,但我觉得造轮子是每个程序员的必经之路,写多了才会知道自己的不足。Copy不是坏事,就怕没有思考的Copy。我们都是普通人,我们不是大师,所以我们要多磨练。但不能闭门造车,多研究别人的代码和方法论是有必要的。


    @zhujinliang 年轻人造点轮子没什么不好,只有深入了解了,才会得心应手,才会happy
    cxshun
        9
    cxshun  
       2013-08-07 13:42:18 +08:00   ❤️ 1
    @zhujinliang 有同感。重复造轮子没什么不好的,反而能让自己对某部分的知识或者思想有更深入的理解。
    其实探索和创造并不矛盾,很多时候我们都是先探索,然后到一定阶段,发现某个框架或者工具不符合自己的要求,或者说改起来太费劲,我们就会学着去创造。创造的过程肯定会有一些思想迸发的东西,慢慢地把这个创造的东西做得更好。
    其实进行对比这是人类的天性,国外稍微好点,不会说啥啥框架做了,你这个有什么优点,国内就会有这样的说法,别人都做了,你做这个有什么用,好像就是说别人做了,再做另外一个就是浪费人生一样。
    很多时候,我们用一个东西,归根结底要深入到它的思想,这样才不会说他换了一个API就杯具了。就像python,python3和python2换了很多东西,但真正深入的人却没感觉有多少困难。探索->创造,感觉这是一个必然的过程,也是一个想要深入必须经历的阶段。
    ulmate01
        10
    ulmate01  
       2013-08-07 13:42:46 +08:00
    造轮子什么意思呢?谷歌得的不太全面,大概理解了,但是求指教。
    alexrezit
        11
    alexrezit  
       2013-08-07 13:51:20 +08:00
    楼主你想说的是 create 吧...
    Paola
        12
    Paola  
       2013-08-07 13:58:29 +08:00
    @zhujinliang 都用自己的框架,如何协同工作呢?
    edgar
        13
    edgar  
       2013-08-07 15:25:03 +08:00
    SR1
        14
    SR1  
       2013-08-07 15:32:16 +08:00
    @zhujinliang 说得好,要有一颗乐于接受新事物的心,也要有一双热爱创造的手。
    jesonyang
        15
    jesonyang  
       2013-08-07 15:39:29 +08:00
    make 出现error 时,就爽不起来了!
    leavic
        16
    leavic  
       2013-08-07 15:39:38 +08:00
    调代码的时候爽吗?
    zhujinliang
        17
    zhujinliang  
       2013-08-07 15:45:26 +08:00
    @Paola 我刚才回避了这个问题。

    多个人共同开发的,不牛x的团队还是要用一个成熟的框架(否则各种配合的不舒服,以及带来更多的坑)。
    牛x的团队而且有时间的话可以自己搞一个框架,不少流行框架就是这样来的。
    或者是团队里有个牛x的人站出来说,用我的框架吧(估计会死的比较惨)。

    自己凭爱做的项目,我的意见是可以随性些,让自己获得更多乐趣不更好么。


    我是想表达下造轮子是个人爱好,未必坏事。更不会死板到到哪儿都非要用自己的轮子。
    那次面试也让我清醒了些,感觉有些脱节了,谈到有些框架我不了解,也没有框架方面经验的积累,谈实现某些功能也不知道去哪找合适的框架。

    @ulmate01
    搜一下 “不要重复发明轮子”。指有的项目或功能,别人已经做过,我们需要用的时候,直接拿来用即可,而不要重新制造。
    jacksonpan
        18
    jacksonpan  
       2013-08-07 16:50:41 +08:00
    重新造轮子是让自己了解的更清楚,而并非说要替代前人的工作,这个没有什么必要不必要的,只要你想,我非常支持你造轮子,但是一旦自己造了轮子,要坚持维护,不然就浪费资源了。
    wupher
        19
    wupher  
       2013-08-07 16:56:09 +08:00
    mvc、加载器,不会是写j2ee企业应用吧。
    wwqgtxx
        20
    wwqgtxx  
       2013-08-07 17:47:07 +08:00 via Android
    创造是人类最大的财富,支持楼主!!
    hanf
        21
    hanf  
       2013-08-07 17:48:06 +08:00   ❤️ 1
    偷偷地告诉楼主,我经常借助公司要“自主开发”的机会自己造一遍轮子...
    我完全理解你.
    timothyye
        22
    timothyye  
       2013-08-07 17:52:30 +08:00 via Android
    天天改bug,帮别人擦屁股的飘过……
    refresh
        23
    refresh  
    OP
       2013-08-07 19:11:58 +08:00
    @leavic
    @jesonyang 查找问题的时候很痛苦,但解决了也很开心啊,况且,又不是总出问题
    @hanf 嗯,这事我以前也干过,虽然会招来很多事,但学到了东西
    @timothyye 讨厌给别人擦屁股,所以我会尽量把代码写得优雅一点。我喜欢推倒重要,虽然我知道这样不好。
    @alexrezit 偶尔create,感觉得多数时候还是make
    thai9quohs6jae1C
        24
    thai9quohs6jae1C  
       2013-08-07 19:23:39 +08:00
    你的mark吗,中文不错嘛。
    leavic
        25
    leavic  
       2013-08-07 19:46:36 +08:00
    @refresh 看来你是没写过底层硬件代码啊,等你碰上连官方都没发现的芯片bug的时候就真的会崩溃了,刹那间觉得自己好孤独.
    refresh
        26
    refresh  
    OP
       2013-08-07 20:20:30 +08:00
    @leavic 汗,我是做应用层面的,你那个是科学家级别,我这个是代码匠人级别的,嗯,我就是个手艺人,只不过喜欢这门手艺
    leavic
        27
    leavic  
       2013-08-07 20:36:41 +08:00
    @refresh 别,还科学家呢,实在受不起,我同学才是科学家.搞嵌入式的都可能碰到这种官方没发现的bug.
    williamx
        28
    williamx  
       2013-08-07 20:46:01 +08:00
    “不要重新造轮子”已经成了“批评界”万能的法宝了,他们把这句话的主旨理解的异常透彻并且贯彻执行,以至于他们在“批判”的时候,都是同一个“轮子”。
    bradlee
        29
    bradlee  
       2013-08-07 21:09:34 +08:00
    @leavic 哈哈哈哈 是搞硬件的这种是常态吧?需要FAE支持的,我记得我去年调一个摄像头的驱动,其实很简单,FAE发来一个表格,那个表格是官方文档上没有的,全是一堆寄存器设置,调试那个才叫无语
    gzb1985
        30
    gzb1985  
       2013-08-07 21:09:51 +08:00
    重复去造轮子,不一定能造好,最近一直在模仿着造轮子
    zhaoyafei
        31
    zhaoyafei  
       2013-08-08 05:02:40 +08:00   ❤️ 1
    @fange01 突然有种被6L高深的认知甩出好几条街的感觉
    zhujinliang
        32
    zhujinliang  
       2013-08-08 08:26:16 +08:00
    @hanf 哈哈,我也这样

    @zhaoyafei 碰到熟人了,好羞耻
    zhaoyafei
        33
    zhaoyafei  
       2013-08-08 08:38:30 +08:00
    @zhujinliang 忽略我先
    jianghu52
        34
    jianghu52  
       2013-08-08 09:00:20 +08:00
    哈。一天没见,回复的人好多。看来很多人对于我那句“造轮子”很有意见啊。恩,那我解释一下,我并不反对造轮子,事实上我做的事情99%以上也都是在造轮子。所以我没有立场鄙视别人造轮子。
    但是最近一直跟着产品经理学习,最大的感悟是,在现实的商业社会里面,一个产品的成功,很大程度上归功于业务的创新,而不是代码的创新。换句话说,你可以用别人写到烂大街的代码,创造出别人从没有实现的业务,这才是社会所需要的。不要太过沉迷与写代码的那种感觉,那种看着机器按照自己的意愿输出各种各种值,实现了各种算法,各种功能,那种快乐我懂。
    holy_sin
        35
    holy_sin  
       2013-08-08 09:10:54 +08:00
    看完这个帖子,真的很激动人心,我偶尔就会产生厌烦,被不断变动的需求折腾
    zhicheng
        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 干嘛?

    别那么死板,正是有了很多重复的创造和竞争,才有的伟大的变革。

    用别人的东西 -> 不爽,修改它 -> 修改得太多,不如自己创造一个 -> 别人用自己的东西 -> 别人不爽。。。。

    所有的项目和产品,都是这样出来的。
    Golevka
        37
    Golevka  
       2013-08-08 11:17:11 +08:00
    @leavic 并且一般嵌入式行业都是今年做明年/后年release的产品, 许多芯片还没量产就开始用了, 于是巨坑无数 (我们能发现的也只是冰山一角T T).

    去年还遇上个处理器访问Ext. Flash的pipeline hazard没处理好于是处理器直接lockup的bug... 芯片厂商不肯改, 于是我们只好改编译器让它生成访存代码时自动插入3个nop() /*fvck!*/
    picasso250
        38
    picasso250  
       2013-08-08 15:13:14 +08:00
    我也喜欢写轮子。喜欢写轮子的人都是好奇的人。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2304 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 08:36 · PVG 16:36 · LAX 01:36 · JFK 04:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.