|  |      1virgil      2012-05-25 21:29:53 +08:00 github上有很多,不知道你所说的什么才算优秀的代码,我觉得这个应该所一个过程吧,你不能一步就能够达到顶端,只有反复的磨练。 | 
|  |      2kidfolk      2012-05-25 21:32:54 +08:00 看开源项目的代码,或者直接参与开源项目 | 
|  |      3gujiaxi OP @virgil github的话……林子大了你懂的…… 优秀代码的话,我也没法确切地定义,只是想避免一些弯路,养成好的编程习惯,虽然code style可能每个人都不一样,但总有糟糕的风格可以避免吧。 | 
|  |      4ufo22940268      2012-05-25 21:43:55 +08:00 看了《clean code》受益匪浅 | 
|  |      5humiaozuzu      2012-05-25 21:47:56 +08:00 其实这个事情和写作文一样的,平时如果积累的素材足够多,用的时候就可以有很多很好的参考例子来让你的项目变的更加完美,仅仅靠搜索引擎找到的可能只是用的最多的实践,而不是最佳;要从根本上解决问题,还是要解决素材问题,建议平时多多去 hacker news/reddit上面逛逛,还有quora和国内的一些靠谱的社区(v2ex/知乎/ruby-china etc),以及google reader | 
|  |      6haohaolee      2012-05-25 22:09:25 +08:00 这事儿和个人品味也有关。不挑食的话,久了自然就形成自己的品味了 | 
|  |      7kojp      2012-05-25 22:14:13 +08:00 我只想说LZ作为一个学生党,真的已经是很强的 了! 膜拜中~~~ 代码,感觉是外国人写的都比较clean。(这样好像会被喷的) | 
|  |      8mozartgho      2012-05-25 22:16:19 +08:00 上github,上面有很多优秀的代码 | 
|  |      9virgil      2012-05-25 23:44:57 +08:00 @gujiaxi  的确,我觉得可以看看那些很经典的框架源代码,那个相对来说应该很clean了,思想也很好,不过没有很好的基础的看我觉得很吃力。 | 
|  |      10pepsin      2012-05-26 00:21:26 +08:00 我感觉实际实现的话都会或多或少略脏,因为语言还有Libary的很多特性不可能谁都全部掌握,而很多时候你费劲写的脏兮兮的代码或许语言或者Libary已经有现成的实现了。 高手就是多知道这些,然后熟练那些特性。比如Ruby里熟练使用yield配合block可以写很多很干净的东西,但是如果不懂或不熟练,很可能就会写几个长起来一样细节不同的方法再结合switch或者if结构。更进阶的像Proc,method_missing这些就更厉害了,还有openstruct。 不过缺点就是不明白这些的人会觉得像魔法。。。 | 
|  |      11pepsin      2012-05-26 00:23:07 +08:00 对了,上面说那么多结果忘了给楼主建议了,相比看代码,实际实践到一定层次后看点进阶的书或许更好?或者你接触领域里大牛们的blog。 | 
|  |      12Livid MOD PRO 你需要具体是哪门语言的 good code 呢? | 
|      14sampeng      2012-05-26 03:29:15 +08:00 以前我也一直这么想。。。 现在嘛。。。 先写,实现需求。只是告诫自己注意该注意的。但重点不是这个。。。重点是重构!!。隔一段时间回头看看自己的代码。不是看看而已就拉到了。是要重构它。让他变漂亮。久而久之,代码就很感觉了。。 做的每一件事都把代码当自己的生命看待,而不是赚钱工具。代码能不好都难。。。看一份代码是可以看出编码者在写这份代码的心情的。。。 另外。。不要中文里面含英文单词。。其实这是很不好的习惯。。。 | 
|  |      15marvinII      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的过程,只有几十行代码。 | 
|  |      16gujiaxi OP |