心得
我这是第一次看源码。说不上什么心得,不过也总结一下~
我觉得阅读一个项目的源码,应该是先知道这个项目具体怎么用之后,先估计一下作者的实现,然后再看源码来验证自己的想法。
我这次阅读源码是在没有用过这个项目的前提下阅读的,一开始的时候不知道从何读起,于是就去网上找别人的博客,跟着别人的博文一篇一篇的看,然后自己对着源码看。慢慢的自己就开始知道要看什么了,就不再跟着别人的博文的步骤来,自己想知道那个功能是怎么实现的,然后就找到对应的函数,看看作者是怎么实现的。可是这样到后来我看着作者的代码,却不知道用户的输入是什么,也就不知道作者为什么要那样处理输入。
比如说看到作者处理用户的命令的时候看得不懂,因为我根本不知道用户的命令会是什么,所以,在看源代码之前,最好就是熟悉一下这个项目的用法。
还有就是,一开始看源码的时候就是先看大概,怎么处理用户的请求,怎么存储,怎么管理内存等等,这些内容可以先通过网上的博客的讲解来了解,对这个项目有个大概的印象会对我们看源代码很有帮助。不要一开始就看代码细节,代码细节一开始看估计也看不懂吧?
比如说,我们可以先看看memcache关于内存管理的博客,很多博客都会有比较画出比较形象的图来表示出内存如何管理的,我们先对它的内存管理有个印象,然后再自己看源代码的实现。这样会比直接看源码好多了,因为直接看源码看到一个结构体那么多变量,都不知道他们什么用,一时就懵了。内存管理的博客的例子,下图是引用这个博客的图片~
一个图是不是比自己看结构体的变量要清晰的多?我们要站在巨人的肩膀上~~~
关于源码版本
开源项目一般都会有多个版本,我觉得一开始就应该看比较老的版本,因为老版本一般都是比较简单,功能比较少,相对容易看懂。先看那些老版本知道这个项目具体要实现什么功能,看完老版本之后如果还有兴趣看看一些较新的功能,再看新的版本,我觉得这样会比较好。
每个版本可能的差异也是比较大的,网上的博客可能找不到你下载的版本,不过也不要紧,大致思想还是一致的。先看网上博客的观点,然后再在自己的源码版本中验证。