V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gujiaxi
V2EX  ›  问与答

读代码学编程 - 请问在哪儿能够找到优秀的代码用来阅读呢?

  •  
  •   gujiaxi · 2012-05-25 21:27:26 +08:00 · 3774 次点击
    这是一个创建于 4567 天前的主题,其中的信息可能已经有所发展或是发生改变。
    很多时候自己的代码虽然能够工作(just work),但是总觉得有点dirty,想要看看优秀的代码应该是怎么样的,或者有没有什么关于写出优秀代码的书推荐?
    谢谢
    17 条回复    1970-01-01 08:00:00 +08:00
    virgil
        1
    virgil  
       2012-05-25 21:29:53 +08:00
    github上有很多,不知道你所说的什么才算优秀的代码,我觉得这个应该所一个过程吧,你不能一步就能够达到顶端,只有反复的磨练。
    kidfolk
        2
    kidfolk  
       2012-05-25 21:32:54 +08:00
    看开源项目的代码,或者直接参与开源项目
    gujiaxi
        3
    gujiaxi  
    OP
       2012-05-25 21:42:45 +08:00
    @virgil github的话……林子大了你懂的……
    优秀代码的话,我也没法确切地定义,只是想避免一些弯路,养成好的编程习惯,虽然code style可能每个人都不一样,但总有糟糕的风格可以避免吧。
    ufo22940268
        4
    ufo22940268  
       2012-05-25 21:43:55 +08:00
    看了《clean code》受益匪浅
    humiaozuzu
        5
    humiaozuzu  
       2012-05-25 21:47:56 +08:00
    其实这个事情和写作文一样的,平时如果积累的素材足够多,用的时候就可以有很多很好的参考例子来让你的项目变的更加完美,仅仅靠搜索引擎找到的可能只是用的最多的实践,而不是最佳;要从根本上解决问题,还是要解决素材问题,建议平时多多去 hacker news/reddit上面逛逛,还有quora和国内的一些靠谱的社区(v2ex/知乎/ruby-china etc),以及google reader
    haohaolee
        6
    haohaolee  
       2012-05-25 22:09:25 +08:00
    这事儿和个人品味也有关。不挑食的话,久了自然就形成自己的品味了
    kojp
        7
    kojp  
       2012-05-25 22:14:13 +08:00
    我只想说LZ作为一个学生党,真的已经是很强的 了! 膜拜中~~~


    代码,感觉是外国人写的都比较clean。(这样好像会被喷的)
    mozartgho
        8
    mozartgho  
       2012-05-25 22:16:19 +08:00
    上github,上面有很多优秀的代码
    virgil
        9
    virgil  
       2012-05-25 23:44:57 +08:00
    @gujiaxi 的确,我觉得可以看看那些很经典的框架源代码,那个相对来说应该很clean了,思想也很好,不过没有很好的基础的看我觉得很吃力。
    pepsin
        10
    pepsin  
       2012-05-26 00:21:26 +08:00
    我感觉实际实现的话都会或多或少略脏,因为语言还有Libary的很多特性不可能谁都全部掌握,而很多时候你费劲写的脏兮兮的代码或许语言或者Libary已经有现成的实现了。

    高手就是多知道这些,然后熟练那些特性。比如Ruby里熟练使用yield配合block可以写很多很干净的东西,但是如果不懂或不熟练,很可能就会写几个长起来一样细节不同的方法再结合switch或者if结构。更进阶的像Proc,method_missing这些就更厉害了,还有openstruct。

    不过缺点就是不明白这些的人会觉得像魔法。。。
    pepsin
        11
    pepsin  
       2012-05-26 00:23:07 +08:00
    对了,上面说那么多结果忘了给楼主建议了,相比看代码,实际实践到一定层次后看点进阶的书或许更好?或者你接触领域里大牛们的blog。
    Livid
        12
    Livid  
    MOD
       2012-05-26 02:39:51 +08:00
    你需要具体是哪门语言的 good code 呢?
    9hills
        13
    9hills  
       2012-05-26 02:52:28 +08:00
    @pepsin linux kernel中也有很多magic code.初学者还是看一些中规中矩的代码比较好。
    sampeng
        14
    sampeng  
       2012-05-26 03:29:15 +08:00
    以前我也一直这么想。。。
    现在嘛。。。
    先写,实现需求。只是告诫自己注意该注意的。但重点不是这个。。。重点是重构!!。隔一段时间回头看看自己的代码。不是看看而已就拉到了。是要重构它。让他变漂亮。久而久之,代码就很感觉了。。

    做的每一件事都把代码当自己的生命看待,而不是赚钱工具。代码能不好都难。。。看一份代码是可以看出编码者在写这份代码的心情的。。。

    另外。。不要中文里面含英文单词。。其实这是很不好的习惯。。。
    marvinII
        15
    marvinII  
       2012-05-26 04:56:26 +08:00   ❤️ 1
    1. 这个问题reddit上以前见过,推荐的回复里是读Lua的解释器代码,信噪比很高,因为由三个高手打磨了很多年,又比较小。

    2. 还有推荐Qemu的,可以开阔一下多体系结构的眼界,看看作者如何游刃有余的处理棘手的跨平台虚拟机。

    3. Beautiful Code这本书里也有很多推荐,但规模大小跨度很大,比如Brain Kernighan推荐的Rob Pike写的十几行的正则表达式匹配,FIT框架,到SVN之类。

    4. SICP里的代码都很好;只是很难吃透。

    5. Software Tools in PASCAL 是介绍早期unix的常用工具如何写就的,Kernighan & PJ P

    6. Paul Graham写过一篇The Root of Lisp,模拟当年John发现Lisp的过程,只有几十行代码。
    gujiaxi
        16
    gujiaxi  
    OP
       2012-05-26 09:19:41 +08:00
    @humiaozuzu 嗯,编程是该平衡 读 和 写 ,
    @kojp 实在是太过奖了,只是初学者而已。
    @virgil 好,尽量试试吧,看一些规模小一点的。
    @pepsin 进阶的东西还是有了足够的经验 实践了再说吧,现在在学Java,确实有点像你说的那样,现成的实现很多。
    @Livid C、Java,主要就是这两种语言。之前有涉猎过ruby,不过可能作用仅仅是建立了我面向对象的思维方式并开始学习Java吧。:P
    @sampeng 重构的话时间精力都会限制吧(主要还是懒:P),而且感觉自己的效率本身就不怎么高。至于中英文……我会注意的
    @marvinII 对于我来说这些貌似有点进阶了,记下了,谢谢。
    sampeng
        17
    sampeng  
       2012-05-26 09:53:11 +08:00
    @gujiaxi 重构才是让代码变好的最快的捷径。。。因为重构就类似学习过程中的巩固。不停的在思考。。你要懒就没办法了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3400 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:19 · PVG 20:19 · LAX 04:19 · JFK 07:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.