如題袍辞,為什么要這樣做呢伦连,我們要從開源項目獲取一些什么東西呢?才能我們付出的時間和精力有價值呢荐吉?學習一個開源項目,無非想得到如何下的好處:使用開源項目提高的開發(fā)的速度和開發(fā)質(zhì)量口渔;第一样屠,了解開源架構和設計,并能夠嫻熟應用到自己架構設計的項目當中。
想要學習一個開源項目痪欲,一般都遵循如何的步驟:第一悦穿,了解開源項目是什么,并了解開源項目的應用場景业踢;第二栗柒,熟悉開源項目,并能高效陨亡,快捷的使用它傍衡;第三,了解開源的架構設計方式负蠕,并能夠應用這些架構設計方式;第四倦畅,摸索作者的架構思路遮糖。這個四個步驟,看似容易叠赐,其實還是有一定的難度的欲账,特別第三步和第四步,有難度芭概,但是非常重要赛不,也是非常關鍵的兩步,那么該如何昨晚這四步呢罢洲?
學習一個開源項目的第一步踢故,相對來說,還是比較容易惹苗,一般可以通過官方網(wǎng)站殿较,或者相關的博客文章,就可以獲取到足夠多的信息桩蓉,讓你對開源項目有一個了解淋纲,并熟知它的應用場景。那么第二步呢院究,就有點難度了洽瞬,如果你是一個有幾年工作經(jīng)歷的程序員了,我想這一步业汰,你也能較容易的完成伙窃,為什么呢?一般可以通過開源項目附帶的例子程序就能夠幫助你做到這一點蔬胯,以此能夠了解到足夠多的使用方式对供。至于如何高效和快捷的使用,這樣就需要自己的摸索了,有些開源項目的官方網(wǎng)站提供一些建議产场,這樣你就不并苦苦的搜尋了或者去讀開源項目的源碼了鹅髓。
相對于前兩步,后兩步就是高了一個層次了京景,它要求熟悉開源項目的設計結構窿冯,這就可能需要你去研習開源項目的源碼了,從源碼中去了解整個項目和關鍵工作的設計确徙。最好是從已知的問題出發(fā)醒串,比如一個共享服務器間會話session的開源包,你可能迷惑它是如何管理會話的過期的鄙皇,就可以從這個問題出現(xiàn)芜赌,了解到開源包某一方面,就想這個例子伴逸,你就可以借這樣的一個問題缠沈,了解到開源包的整體架構和管理會話過期部分。上面的說的第三步错蝴,那么如何做到第四步呢洲愤?這樣有難度,而且也不一定有這樣的必要顷锰。了解作者的設計思路柬赐,那就的自己也來設計一次了,看看自己是如何想的官紫,你可以從一個簡單的例子開始肛宋,比如我們學習mina的設計思路,我們可以從一個監(jiān)聽服務端端口的程序開始万矾,一步一步的優(yōu)化悼吱,直到你滿意為止,之后再拿你的成果和現(xiàn)在開源項目設計對比良狈,看看自己的設計功底后添。同時也能夠考驗一下自己的思維的全面性,看看自己那些方面考慮到了薪丁,又有那些方面沒有考慮到遇西,沒有考慮到的原因是什么,多問幾個為什么严嗜?
到現(xiàn)在粱檀,四步都完成了,你也把該學的東西都學習了漫玄,恭喜你茄蚯。