如题,为什么要这样做呢,我们要从开源项目获取一些什么东西呢?才能我们付出的时间和精力有价值呢?学习一个开源项目,无非想得到如何下的好处:使用开源项目提高的开发的速度和开发质量;第一,了解开源架构和设计,并能够娴熟应用到自己架构设计的项目当中。
想要学习一个开源项目,一般都遵循如何的步骤:第一,了解开源项目是什么,并了解开源项目的应用场景;第二,熟悉开源项目,并能高效,快捷的使用它;第三,了解开源的架构设计方式,并能够应用这些架构设计方式;第四,摸索作者的架构思路。这个四个步骤,看似容易,其实还是有一定的难度的,特别第三步和第四步,有难度,但是非常重要,也是非常关键的两步,那么该如何昨晚这四步呢?
学习一个开源项目的第一步,相对来说,还是比较容易,一般可以通过官方网站,或者相关的博客文章,就可以获取到足够多的信息,让你对开源项目有一个了解,并熟知它的应用场景。那么第二步呢,就有点难度了,如果你是一个有几年工作经历的程序员了,我想这一步,你也能较容易的完成,为什么呢?一般可以通过开源项目附带的例子程序就能够帮助你做到这一点,以此能够了解到足够多的使用方式。至于如何高效和快捷的使用,这样就需要自己的摸索了,有些开源项目的官方网站提供一些建议,这样你就不并苦苦的搜寻了或者去读开源项目的源码了。
相对于前两步,后两步就是高了一个层次了,它要求熟悉开源项目的设计结构,这就可能需要你去研习开源项目的源码了,从源码中去了解整个项目和关键工作的设计。最好是从已知的问题出发,比如一个共享服务器间会话session的开源包,你可能迷惑它是如何管理会话的过期的,就可以从这个问题出现,了解到开源包某一方面,就想这个例子,你就可以借这样的一个问题,了解到开源包的整体架构和管理会话过期部分。上面的说的第三步,那么如何做到第四步呢?这样有难度,而且也不一定有这样的必要。了解作者的设计思路,那就的自己也来设计一次了,看看自己是如何想的,你可以从一个简单的例子开始,比如我们学习mina的设计思路,我们可以从一个监听服务端端口的程序开始,一步一步的优化,直到你满意为止,之后再拿你的成果和现在开源项目设计对比,看看自己的设计功底。同时也能够考验一下自己的思维的全面性,看看自己那些方面考虑到了,又有那些方面没有考虑到,没有考虑到的原因是什么,多问几个为什么?
到现在,四步都完成了,你也把该学的东西都学习了,恭喜你。