记得以前写过《开始Blog吧》《开始做个项目吧》,现在我又想建议大家“开始读源码吧”。

Blog是用来表达自已的心得之用,总得有的放矢吧。因此,开始做顶目就是给你找事做的。有了事情,自然好写一些东西了。但光自已做还不行,因为个人的经验毕竟是有限的,需要放眼四方,因此读代码就是另一个可以做的事情了。

有这个想法是由于目前有许多优秀的开源项目,它们很出色,很成功。但对于我自已,也对于中国的大多数 Python 爱好者乃至开源爱好者来说,如何读代码,如何从代码中进行学习,如何把学习的成果保留下来都是一件难事。

好的代码就象读书一样,只有多读,多写笔记才有可能融汇灌通。如果一个项目很大,绝对不是一天两天可以完成的。再加上读得是否准确也是一个问题。如果有可能汇集一些志同道合的人一同来读代码,经常进行交流不也是很快乐的事情吗?我想,读代码是痛苦,但也许比写代码更有意义。写代码许多时候是自身经验的体现,因此代码的好坏与经验的高低可能有关系。而且许多时候,在没有很好设计的时候,写出的代码基本上是乱糟糟,这样子对于自身水平的提高也没有什么好处。读代码可以学习别人的精妙之处,设计的精华,从而提高自已的功能。我想这就象是写文章,教给你许多字你是不是就可以写出好文章来呢?不一定。只有多看别人的文章,最终变成自已的,才有可能写出好文章来。熟读唐诗三百首,不会作诗也能吟。多少可以照猫画虎,有时比起全是大白话可有学问多了。

不管怎么样,读代码,读好的代码的确是一件对自已有好处的事。

不过读代码怎么读,心得如何写,我还真是没有什么经验。读代码本身是很跳跃的,一会看到这,一会看到那。代码有时也很长,一点一滴都写出来,太累,而且有必要吗?你写得心得终究是代替不了原程序的。我觉得,明白清晰的东西可以不用写。比如说一个流程,明明白白的就没必要写。但是特殊的处理,或自身的理解最好写出来。也就是把自已的东西写出来。一方面可以记录下自已的思考过程,也许对别人有帮助,另一方面是对原来可能不清晰的地方的一个补充。

不管怎么样,只要是把你自已真正理解的东西让别人也能看懂的话那就是有意义的,才有讨论的价值。现在时间很紧,真希望可以早些开始。

其实我个人早已经开始了,象 CherryPy 就是一个例子,希望对其它人有用。

中国Linux论坛 论坛中有人提供了一个开源代码阅读的论坛,的确很有趣。如何组织代码阅读与做项目真是没有什么不同,也同样需要组织和协调。只不过更多的是个人理解的问题。如果能够就某些问题产生讨论和辩论,真是很有意思的一件事情(我挺希望辩论的)。论坛可以用来组织,但看程序如果有一个平台是最好的。象我以前做过的翻译与评论网站其实也可以做这件事。大家可以对代码的每个段落发表自已的看法和想法,成熟的想法可以写成文章。想一想,有机会真是要再好好重新实现一下子翻译与评论网站的功能了。


7条评论

  1. 哈哈哈!!great Idea!

    就叫 "开始吧"系列(以后写不动代码了,也开一个酾面向程序员的酒吧,也以此为名)!

    将各种相互鼓励的想法,收集起来,一起开始!

    辟专栏,在 Wiki 中,或是大家各自的blog 中!

    汇集各种 阅读大师们 源代码的心得!

    支持 10000%

  2. 推荐几个limodou认为最好的python源代码来读读吧

  3. 我的眼界还是挺窄的,因此我看到未必是最好的。不过可以推荐一下,让大家也讨论一下,有些是我很想读的,不一定是最好的:

    GUI: TaskCoach http://members.chello.nl/f.niessink/

    使用wxPython实现,感觉对wxPython的使用很精通,有些非常好的处理。想通过它增强NewEdit的界面。

    网络: Twisted

    是看到别人的建议,都说它不错,因此也想有个机会读一读。了解了一些,知道Twisted有许多关于接口的设计非常好。

    Web: Roundup http://roundup.sourceforge.net/index.html

    最近才想读它。虽然不是很了解,但这个问题跟踪系统发展得不错。很早的时候我用过,那时感觉一般。现在好象很不错,因此也想读一读。

    暂时就这么多。别人也可以推荐一下。

  4. 我技推荐 CherryTemplate

    http://cherrytemplate.python-hosting.com/

    非常简单,不象其它更加成熟的模板系统,需要学习新的语言…………

  5. trac是一个项目管理平台,而roundup是一个问题跟踪系统。相比来说trac要复杂一些,而roundup要简单一些,但功能也简单一些。

    至于模板系统我用得不多,而且我自已还写过一个数据驱动的叫meteor,在啄木鸟社区上有。因此不好说哪个更好一些。

  6. 我看了limodou的关于cherrypy的笔记,受益匪浅.读源代码有时是捷径,尤其在文档缺乏的时候。

    今天又知道了roundup,有空了解一下。不过现在项目管理似乎trac比较跑火。

    另:想请教一下limodou,python的模版系统,用过哪些,比较过么?因我现在比较看好kid template,但中文没弄通。

  7. MoinMoin 作为最流行的 Wiki 系统,

    现在发展的非常的快,

    其代码也非常值得学习,阅读哪!

发表评论

评论也有版权!